在 Scala 中对列表进行排序

Mohammad Irfan 2023年1月30日
  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