Kotlin 陣列 - sortedBy() 函式



Kotlin 陣列的 sortedBy() 函式用於返回一個列表,該列表包含根據指定選擇器函式返回的值的自然排序順序按升序排序的所有元素。

排序是穩定的。這意味著相等元素在排序後彼此之間保持相對順序。

語法

以下是 Kotlin 陣列 sortedBy() 函式的語法:

fun <T, R : Comparable<R>> Array<out T>.sortedBy(
   crossinline selector: (T) -> R?
): List<T>

引數

此函式接受 **selector** 作為引數,它表示一個定義排序標準的函式。

返回值

此函式返回一個包含所有元素的升序排列的列表。

示例 1

以下是一個基本示例,用於演示 sortedBy() 函式的使用:

fun main(args: Array<String>){
   var arr = arrayOf<Int>(2, 4, 5, 6, 1)        
   val list = arr.sortedBy({it})   
   println("Sorted list: $list")
}

輸出

以上程式碼生成以下輸出:

Sorted list: [1, 2, 4, 5, 6]

示例 2

現在,我們建立一個字串陣列。然後我們使用 **sortedBy()** 函式根據長度對元素進行排序:

fun main(args: Array<String>){
   var arr = arrayOf<String>("This", "is", "tutorialspoint", "India")
        
   val list = arr.sortedBy({it.length})   
   println("Sorted list:")
   println(list)
}

輸出

以下是輸出:

Sorted list:
[is, This, India, tutorialspoint]

示例 3

以下示例建立一個 Person 類,該類以人的年齡作為引數。然後我們使用 sortedBy() 函式按升序對人的年齡進行排序:

class Person(var age: Int) {
   override fun toString(): String {
      return "(age=$age)"
   }
}
fun main(args: Array<String>) {
   val p1 = Person(24)
   val p2 = Person(25)
   val p3 = Person(26)
   val listOfage = arrayOf(p1, p2, p3)
   val sorted_age_list = listOfage.sortedBy { it.age }
   println("List of person ages:")
   println(sorted_age_list)
}

輸出

以下是輸出:

​
List of person ages:
[(age=24), (age=25), (age=26)]
kotlin_arrays.htm
廣告

© . All rights reserved.