Kotlin 陣列 - sortedWith() 函式



Kotlin 陣列的 sortedWith() 函式用於根據指定的比較器函式返回包含陣列元素的已排序列表。

比較器是一個函式,根據傳遞給函式的兩個變數的比較結果返回 1、-1 或 0。

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

語法

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

fun <T> Array<out T>.sortedWith(
   comparator: Comparator<in T>
): List<T>

引數

此函式接受一個比較器作為引數。

返回值

此函式返回一個包含此陣列已排序元素的列表。

示例 1

以下是一個演示 sortedWith() 函式用法的基本示例:

fun main(args: Array<String>){
   val arr = arrayOf<Int>(5, 3, 6, 7, 4)
   var res = arr.sortedWith(Comparator<Int>{ a, b ->
      when {
         a > b -> 1
         a < b -> -1
         else -> 0
      }
   })
   println("Sorted array: $res")
}

輸出

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

Sorted array: [3, 4, 5, 6, 7]

示例 2

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

fun main(args: Array<String>){
   val arr = arrayOf<String>("Daisy", "Rahul", "Ram", "Prajwalani")
   var res = arr.sortedWith(Comparator<String>{ a, b ->
      when {
         a > b -> 1
         a < b -> -1
         else -> 0
      }
   })
   println("Sorted array: $res")
}

輸出

以下是輸出:

Sorted array: [Daisy, Prajwalani, Rahul, Ram]

示例 3

下面的示例建立一個比較器,用於以降序對元素進行排序。然後我們使用 sortedWith() 函式根據此比較器對陣列的元素進行排序:

fun main(args: Array<String>) {
   val numbers = arrayOf(42, 7, 23, 89, 5, 34)

   // Display the original array
   println("Original array: ${numbers.joinToString(", ")}")

   // create a custom comparator to sort the array in descending order
   val descendingComparator = Comparator<Int> { a, b -> when {
      a < b -> 1
      a > b -> -1
      else -> 0 }       
   }

   // Sort the array using the custom comparator
   val sortedNumbers = numbers.sortedWith(descendingComparator)
    
   // Display the sorted array
   println("Sorted array with comparator: ${sortedNumbers.joinToString(", ")}")
}

輸出

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

Original array: 42, 7, 23, 89, 5, 34
Sorted array with comparator: 89, 42, 34, 23, 7, 5
kotlin_arrays.htm
廣告
© . All rights reserved.