我已经创建了一个像这样的列表,我可以根据大小轻松地对其进行排序。
我也尝试过。
@ List(List(2, 2, 3), List(7)).sortBy(_.size)
res71: List[List[Int]] = List(List(7), List(2, 2, 3))
但是如果我的列表中有重复项,我想要去除这些重复项,可以进行以下操作:
@ List(List(2, 2, 3), List(3, 2, 2), List(7)).map(_.sorted).toSet.toList
res72: List[List[Int]] = List(List(2, 2, 3), List(7))
您可以看到上面列表的数据类型仍然是List[List[Int]]。
现在,如果我尝试
@ List(List(2, 2, 3), List(3, 2, 2), List(7)).map(_.sorted).toSet.toList.sortBy(_.size)
cmd73.sc:1: missing parameter type for expanded function ((x$2: <error>) => x$2.size)
val res73 = List(List(2, 2, 3), List(3, 2, 2), List(7)).map(_.sorted).toSet.toList.sortBy(_.size)
^
Compilation Failed
我也尝试过。
@ List(List(2, 2, 3), List(3, 2, 2), List(7)).map(_.sorted).toSet.toList.sortBy(x => x.size)
cmd73.sc:1: missing parameter type
val res73 = List(List(2, 2, 3), List(3, 2, 2), List(7)).map(_.sorted).toSet.toList.sortBy(x => x.size)
^
Compilation Failed
我有点困惑。手动构建的List[List[Int]]和来自toList函数的List[List[Int]]之间有什么区别?为什么我可以在第一个上调用sortBy
,但无法在第二个上调用sortBy?