Kotlin 数组 - sortedByDescending() 函数



Kotlin 数组的 sortedByDescending() 函数用于返回一个列表,该列表包含根据指定选择器函数返回的值的自然排序顺序以降序排列的所有元素。

语法

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

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

参数

此函数接受selector作为参数,该参数表示定义排序条件的函数。

返回值

此函数返回一个包含所有元素的列表,这些元素以降序排列。

示例 1

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

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

输出

以上代码生成以下输出:

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

示例 2

在这个例子中,我们使用sortedByDescending()函数根据长度以降序排列数组的元素:

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

输出

以下是输出:

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

示例 3

下面的示例创建一个 Person 类,该类以人的年龄作为参数。然后,我们使用 sortedByDescending() 函数以降序排列人的年龄:

class Person(var age: Int) {
   override fun toString(): String {
      return "$age"
   }
}
fun main(args: Array<String>) {
   val p1 = Person(24)
   val p2 = Person(29)
   val p3 = Person(30)
   val listOfage = arrayOf(p1, p2, p3)
   val sorted_age_list = listOfage.sortedByDescending { it.age }
   print("Descending ages:")
   println(sorted_age_list)
}

输出

以下是输出:

Descending ages: [30, 29, 24]
kotlin_arrays.htm
广告