Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala中列表的列表到列表_Scala - Fatal编程技术网

Scala中列表的列表到列表

Scala中列表的列表到列表,scala,Scala,我正在学习Scala,这个不变性的概念仍然令人困惑,所以如果这个问题听起来很明显,请给我指出正确的方向 如果我有一个id、groupId和name的对象列表 List( Obj(1, 1, "1.1") Obj(2, 1, "1.2") Obj(3, 1, "1.3") Obj(1, 2, "2.1") Obj(2, 2, "2.2") Obj(1, 3, "3.1") 在Scala中创建类似这样的东西的正确方法是什么。(项目不一定按groupId排序) 我应该为或映射使用,还是有其他一些方法

我正在学习Scala,这个不变性的概念仍然令人困惑,所以如果这个问题听起来很明显,请给我指出正确的方向

如果我有一个id、groupId和name的对象列表

List(
Obj(1, 1, "1.1")
Obj(2, 1, "1.2")
Obj(3, 1, "1.3")
Obj(1, 2, "2.1")
Obj(2, 2, "2.2")
Obj(1, 3, "3.1")
在Scala中创建类似这样的东西的正确方法是什么。(项目不一定按groupId排序)

我应该为或映射使用
,还是有其他一些方法?

Scala immutable提供了诸如
映射、
折叠
分组比
,这些方法在不改变旧集合的情况下生成一个新的转换集合。例如,考虑后面的

给定

哪个输出

Iterable(
  List(Obj(1,1,1.1), Obj(2,1,1.2), Obj(3,1,1.3)), 
  List(Obj(1,2,2.1), Obj(2,2,2.2)), 
  List(Obj(1,3,3.1))
)
考虑使用
列表
并请求实时初学者友好的指导。

Scala immutable提供如
地图
折页
分组方式
等,在不改变旧集合的情况下生成一个新的转换集合。例如,考虑后面的

给定

哪个输出

Iterable(
  List(Obj(1,1,1.1), Obj(2,1,1.2), Obj(3,1,1.3)), 
  List(Obj(1,2,2.1), Obj(2,2,2.2)), 
  List(Obj(1,3,3.1))
)
考虑使用
列表
并请求实时初学者友好指导。

objs.groupBy(x=>x.b).values.toList
应该完成任务
objs.groupBy(x=>x.b).values.toList
应该完成任务
case class Obj(x: Int, y: Int, s: String)

val objs =
  List(
    Obj(1, 1, "1.1"),
    Obj(2, 1, "1.2"),
    Obj(3, 1, "1.3"),
    Obj(1, 2, "2.1"),
    Obj(2, 2, "2.2"),
    Obj(1, 3, "3.1"),
  )
Iterable(
  List(Obj(1,1,1.1), Obj(2,1,1.2), Obj(3,1,1.3)), 
  List(Obj(1,2,2.1), Obj(2,2,2.2)), 
  List(Obj(1,3,3.1))
)