在 Scala 中對列表進行排序
Mohammad Irfan
2023年1月30日
本教程將討論在 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