Kotlin 数组 - sortBy() 函数



Kotlin 数组的 sortBy() 函数用于根据指定选择器函数返回的值的自然排序顺序对数组元素进行就地排序。

此函数返回的元素将按升序排列。

排序是稳定的。这意味着相等元素在排序后彼此之间保持其相对顺序。

语法

以下是 Kotlin 数组 sortBy() 函数的语法:

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

参数

此函数接受selector作为参数,它表示一个定义排序标准的函数。

返回值

此函数不返回任何值。它仅将原始数组修改为升序。

示例 1

以下是一个基本示例,用于演示 sortBy() 函数的使用:

fun main(args: Array<String>){
   var arr = arrayOf<Int>(2, 4, 5, 6, 1)
        
   arr.sortBy({it})   
   println("Sorted array ")
   for (i in 0 until arr.size){
      println(arr.get(i))
   }   
}

输出

以上代码生成以下输出:

Sorted array
1
2
4
5
6

示例 2

现在,我们创建一个字符串数组。然后我们使用sortBy()函数根据字符串的长度对元素进行排序:

fun main(args: Array<String>){
   var arr = arrayOf<String>("This", "is", "tutorialspoint", "India")
        
   arr.sortBy({it.length})   
   println("Sorted array:")
   for (i in 0 until arr.size){
      println(arr.get(i))
   }
}

输出

以下是输出:

Sorted array:
is
This
India
tutorialspoint

示例 3

以下示例使用 sortBy() 函数按字母顺序对元素进行排序:

fun main(args: Array<String>){
   var arr = arrayOf<Char>('t', 'u', 't', 'o', 'r', 'i', 'a', 'l', 's', 'p', 'o', 'i', 'n', 't')
   
   // sort the array
   arr.sortBy({it})   
   println("Sorted array:")
   println(arr.joinToString())
}

输出

以下是输出:

​
Sorted array:
a, i, i, l, n, o, o, p, r, s, t, t, t, u
kotlin_arrays.htm
广告