我是scala的新手,我需要用40000整数对一个非常大的列表进行排序。 该操作多次执行。所以表现非常重要。 排序的最佳方法是什么?
答案 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
适用于已定义订单的类型(例如Int
或String
等)。 myList.sortWith
和myList.sortBy
会收到一个有助于定义订单的功能
此外,谷歌上的第一个链接为scala List sort
:http://alvinalexander.com/scala/how-sort-scala-sequences-seq-list-array-buffer-vector-ordering-ordered