compareByDescending
inline fun <T> compareByDescending(crossinline selector: (T) -> Comparable<*>?): Comparator<T>(source)
Creates a descending comparator using the function to transform value to a Comparable instance for comparison.
Since Kotlin
1.1Samples
import kotlin.test.*
fun main() {
//sampleStart
val list = listOf("aa", "b", "bb", "a")
val sorted = list.sortedWith(compareByDescending { it.length })
println(sorted) // [aa, bb, b, a]
//sampleEnd
}
inline fun <T, K> compareByDescending(comparator: Comparator<in K>, crossinline selector: (T) -> K): Comparator<T>(source)
Creates a descending comparator using the selector function to transform values being compared and then applying the specified comparator to compare transformed values.
Note that an order of comparator is reversed by this wrapper.
Since Kotlin
1.1Samples
import kotlin.test.*
fun main() {
//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
}
inline fun <T> compareByDescending(crossinline selector: (T) -> Comparable<*>?): Comparator<T>(source)
Creates a descending comparator using the function to transform value to a Comparable instance for comparison.
Since Kotlin
1.0Samples
import kotlin.test.*
fun main() {
//sampleStart
val list = listOf("aa", "b", "bb", "a")
val sorted = list.sortedWith(compareByDescending { it.length })
println(sorted) // [aa, bb, b, a]
//sampleEnd
}
inline fun <T, K> compareByDescending(comparator: Comparator<in K>, crossinline selector: (T) -> K): Comparator<T>(source)
Creates a descending comparator using the selector function to transform values being compared and then applying the specified comparator to compare transformed values.
Note that an order of comparator is reversed by this wrapper.
Since Kotlin
1.0Samples
import kotlin.test.*
fun main() {
//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
}