Kotlin 陣列 - sortedDescending() 函式



Kotlin 陣列的 sortedDescending() 函式用於返回一個列表,該列表包含陣列元素,並根據其自然排序順序以降序排列。

此函式建立一個新的降序排序列表,而不會修改原始陣列。它只對相同型別的資料進行排序,如果資料型別不同,則返回錯誤。

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

語法

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

fun <T : Comparable<T>> Array<out T>.sortedDescending(): List<T>

引數

此函式不接受任何引數。

返回值

此函式返回一個列表,該列表包含此陣列中以降序排序的元素。

示例 1

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

fun main(args: Array<String>){
   var arr = arrayOf<Int>(2, 4, 5, 6, 1)
   
   // sort the array element in descending.        
   val list = arr.sortedDescending()   
   println("list: $list") 
}

輸出

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

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

示例 2

現在,我們建立一個字串陣列。然後,我們使用 sortedDescending() 函式以降序對元素進行排序:

fun main(args: Array<String>){
   var arr = arrayOf<String>("Hello", "hyderabad", "tutorialspoint", "India")
        
   val list = arr.sortedDescending()   
   println("Descending array list: $list")   
}

輸出

以下是輸出:

Descending array list: [tutorialspoint, hyderabad, India, Hello]

示例 3

以下示例建立一個 Person 物件陣列。然後,我們使用 sortedDescending() 函式根據其年齡以降序對陣列進行排序:

data class Person(val name: String, val age: Int) : Comparable<Person> {
   override fun compareTo(other: Person): Int {
      return this.age.compareTo(other.age)
   }
}
fun main() {
   val people = arrayOf(
      Person("Ram", 42),
      Person("Lakashman", 25),
      Person("Bharat", 35),
      Person("Krishna", 28),
      Person("Arjun", 40)
   )

   println("Original array:")
   people.forEach { println("Name: ${it.name}, Age: ${it.age}") }

   // Sort the array in descending order
   val sortedPeople = people.sortedDescending()

   println("\nSorted array in descending order by age:")
   sortedPeople.forEach { println("Name: ${it.name}, Age: ${it.age}") }
}

輸出

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

Original array:
Name: Ram, Age: 42
Name: Lakashman, Age: 25
Name: Bharat, Age: 35
Name: Krishna, Age: 28
Name: Arjun, Age: 40

Sorted array in descending order by age:
Name: Ram, Age: 42
Name: Arjun, Age: 40
Name: Bharat, Age: 35
Name: Krishna, Age: 28
Name: Lakashman, Age: 25
kotlin_arrays.htm
廣告