如何对Scala集合进行排序?

集合包含所有用于存储多个元素或元素集合(如数组,列表,集合,向量等)的数据结构。

尽管使用集合排序可以使程序员受益,但比较运算符非常有效。

为了对集合进行排序,我们提供了一些方法,在这里我们将学习如何使用它们,

1)使用排序方法

sorted方法用于对Scala中的集合进行排序。

语法:

    val sortedColl = Coll.sorted

程序:

object MyObject {
    def main(args: Array[String]) {
        val seq = Seq(92.23 , 43.12 , 31.2, 7.87)
    
        println("Unsorted Sequence: " + seq)   
    
        val sortedSeq = seq.sorted
        println("Sorted Sequence: " + sortedSeq)   
    
        val lang = Vector("Scala" ,"C" , "HTML" , "Python", "Java")
        println("Unsorted String Vector: " + lang)
    
        val sortedLang = lang.sorted
        println("Sorted String Vector: " + sortedLang)
}
}

输出结果

Unsorted Sequence: List(92.23, 43.12, 31.2, 7.87)
Sorted Sequence: List(7.87, 31.2, 43.12, 92.23)
Unsorted String Vector: Vector(Scala, C, HTML, Python, Java)Sorted String Vector: Vector(C, HTML, Java, Python, Scala)

2)使用sortWith()方法

sortWith()方法以所需的方式对集合中的元素进行排序。

    sortWith(condition)

程序:

object MyObject {
    def main(args: Array[String]) {
        val seq = Seq(92.23 , 43.12 , 31.2, 7.87)

        println("Unsorted Sequence: " + seq)   

        val sortedSeq = seq.sortWith(_>_)
        println("Sorted Sequence: " + sortedSeq)   

        val lang = Vector("Scala" ,"C" , "HTML" , "Python", "Java")
        println("Unsorted String Vector: " + lang)

        val sortedLang = lang.sortWith(_.length<_.length)
        println("Sorted String Vector: " + sortedLang)
    }
}

输出结果

Unsorted Sequence: List(92.23, 43.12, 31.2, 7.87)
Sorted Sequence: List(92.23, 43.12, 31.2, 7.87)
Unsorted String Vector: Vector(Scala, C, HTML, Python, Java)Sorted String Vector: Vector(C, HTML, Java, Scala, Python)