如何在scala中对列表进行排序

时间:2016-12-03 08:40:42

标签: scala

我是scala的新手,我需要用40000整数对一个非常大的列表进行排序。 该操作多次执行。所以表现非常重要。 排序的最佳方法是什么?

3 个答案:

答案 0 :(得分:2)

您可以通过提供相关的函数文字,使用List.sortWith()对列表进行排序。例如,以下代码打印sorted列表的所有元素,其中包含initial列表的所有元素,按字母顺序排列第一个字符小写:

val initial = List("doodle", "Cons", "bible", "Army")
val sorted = initial.sortWith((s: String, t: String) 
   => s.charAt(0).toLower < t.charAt(0).toLower)
println(sorted)

Scala的类型推断将使用更短的版本:

val initial = List("doodle", "Cons", "bible", "Army")
val sorted = initial.sortWith((s, t) => s.charAt(0).toLower < t.charAt(0).toLower)
println(sorted)

对于整数,有List.sorted,只需使用:

val list = List(4, 3, 2, 1)
val sortedList = list.sorted
println(sortedList)

答案 1 :(得分:0)

你可以使用List(1到400000).sorted

答案 2 :(得分:0)

只需查看docs

即可

List有几种排序方法。 myList.sorted适用于已定义订单的类型(例如IntString等)。 myList.sortWithmyList.sortBy会收到一个有助于定义订单的功能

此外,谷歌上的第一个链接为scala List sorthttp://alvinalexander.com/scala/how-sort-scala-sequences-seq-list-array-buffer-vector-ordering-ordered