在 Scala 中对列表进行排序
Mohammad Irfan
2023年1月30日
2022年5月18日
本教程将讨论在 Scala 中对列表元素进行排序的过程。
列表是用于以线性顺序存储元素的容器。Scala 中有一个类 List
来实现列表。
它提供了几个内置函数来支持其操作,例如插入或删除元素。在这里,我们将学习在 Scala 中对列表的元素进行排序。
在 Scala 中使用 Sorted 属性对列表进行排序
在本例中,我们使用 sorted 属性对列表元素进行排序。首先,我们创建了一个包含一些元素的列表并应用了该属性。
我们还使用 for
循环遍历元素以查看已排序的元素。
object MyClass {
def main(args: Array[String]) {
var list1 = List("j", "b", "c")
val sorted = list1.sorted
for (name <- sorted) println(name)
}
}
输出:
b
c
j
在 Scala 中使用 sortWith()
函数对列表进行排序
我们使用 sortWith()
函数将 lambda 表达式作为参数并返回排序后的结果。我们可以使用这个函数对列表进行升序和降序排序。
请参见下面的示例。
object MyClass {
def main(args: Array[String]) {
var list1 = List("j", "b", "c")
val sorted = list1.sortWith((a: String, b: String)
=> a.charAt(0).toLower < b.charAt(0).toLower)
println("--------ascending order-----------")
for (name <- sorted) println(name)
val sorted2 = list1.sortWith((a: String, b: String)
=> a.charAt(0).toLower > b.charAt(0).toLower)
println("--------descending order----------")
for (name <- sorted2) println(name)
}
}
输出:
--------ascending order-----------
b
c
j
--------descending order----------
j
c
b
我们还可以使用 _
(下划线)来替换冗余变量,并使代码简洁易读。请参见下面的示例。
object MyClass {
def main(args: Array[String]) {
var list1 = List("mac", "apple", "dell")
val sorted = list1.sortWith(_.length < _.length)
println("--------ascending order-----------")
for (name <- sorted) println(name)
}
}
输出:
--------ascending order-----------
mac
dell
apple