Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.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_Functional Programming - Fatal编程技术网

Scala 按字母表列表排序

Scala 按字母表列表排序,scala,functional-programming,Scala,Functional Programming,我做了一个练习,必须将重复的元素从列表中放到各个列表中。一切正常,但我的问题是现在如何按字母顺序排列,因此结果从列表(a,a,a,a,a,a)开始,而不是从列表(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[Lis

我做了一个练习,必须将重复的元素从列表中放到各个列表中。一切正常,但我的问题是现在如何按字母顺序排列,因此结果从
列表(a,a,a,a,a,a)
开始,而不是从
列表(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))
麦克提出了一个很好的答案

还可以在groupBy之后按键对地图进行排序

l.groupBy(identity).toList.sortBy(u._1).map(u._2)

.sortBy(u.head)
?你是对的,它可以工作,但如何工作?你能帮我把它建起来吗?我将不胜感激。在这种情况下,
head
是什么?这是每个列表的头
.map{case(key,values)=>values}
=
。values
排序方式将函数应用于列表的每个元素,并根据该函数的结果对列表排序