【发布时间】:2021-07-19 06:07:38
【问题描述】:
我有一个练习,我必须将 List 中的重复元素放到单个列表中。一切正常,但我的问题是现在如何按字母顺序排序,所以结果从List(a,a,a,a,a,a) 开始,而不是从List(e,e,e,e)
最后尝试使用sortBy,但没有一个组合对我有用。
我的代码:
val list2 = List('a', 'a', 'a', 'a', 'b', 'c', 'c', 'a', 'a', 'd', 'e', 'e', 'e', 'e')
def sortedSublist(l: List[Char]): List[List[Char]] = {
l.groupBy(identity).map{case (key, values) => values}.toList
}
println(sortedSublist(list2))
目前的结果是:
List(List(e, e, e, e), List(a, a, a, a, a, a), List(b), List(c, c), List(d))
【问题讨论】:
-
.sortBy(_.head)? -
你是对的,它有效,但是如何?你能为我建造它吗?将感激不尽。在这种情况下,
head是什么? -
这是每个列表的头部
-
.map{case (key, values) => values}===.values -
sort by 将函数应用于列表的每个元素,并根据该函数的结果对列表进行排序
标签: scala functional-programming