在 Scala 中對列表進行排序

Mohammad Irfan 2023年1月30日 2022年5月18日
  1. 在 Scala 中使用 Sorted 屬性對列表進行排序
  2. 在 Scala 中使用 sortWith() 函式對列表進行排序
在 Scala 中對列表進行排序

本教程將討論在 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

相關文章 - Scala List