【发布时间】:2018-06-03 10:08:38
【问题描述】:
我已经创建了一个这样的列表列表,我可以轻松地按大小对其进行排序。
@ 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?
【问题讨论】:
标签: scala