compareByDescending
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
inline fun <T> compareByDescending( crossinline selector: (T) -> Comparable<*>? ): Comparator<T>
Создаёт компаратор в порядке убывания, используя функцию для преобразования значения в экземпляр Comparable для сравнения.
import kotlin.test.*
fun main(args: Array<String>) {
//sampleStart
val list = listOf("aa", "b", "bb", "a")
val sorted = list.sortedWith(compareByDescending { it.length })
println(sorted) // [aa, bb, b, a]
//sampleEnd
}
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
inline fun <T, K> compareByDescending( comparator: Comparator<in K>, crossinline selector: (T) -> K ): Comparator<T>
Создаёт компаратор в порядке убывания, используя функцию selector для преобразования сравниваемых значений, а затем применяет указанный компаратор для сравнения преобразованных значений.
Обратите внимание, что порядок компаратора инвертируется этой оболочкой.
import kotlin.test.*
fun main(args: Array<String>) {
//sampleStart
val list = listOf('B', 'a', 'A', 'b')
val sorted = list.sortedWith(
compareByDescending(String.CASE_INSENSITIVE_ORDER) { v -> v.toString() }
)
println(sorted) // [B, b, a, A]
//sampleEnd
}
© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.comparisons/compare-by-descending.html