Spec-Zone.ru › Kotlin 2

sortedByDescending

kotlin-stdlib/kotlin.collections/sortedByDescending

Версия Kotlin: 1.0

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

Возвращает список всех элементов, отсортированных по убыванию в соответствии с естественным порядком сортировки значений, возвращаемых указанной функцией селектора.

Сортировка стабильная. Это означает, что элементы, для которых селектор вернул одинаковые значения, сохраняют взаимный порядок после сортировки.

Примеры

import kotlin.math.*
import kotlin.test.*

fun main() { 
   //sampleStart 
   class Dish(val name: String, val calories: Int, val tasteRate: Float) {
    override fun toString(): String = "Dish($name: $calories cal, taste $tasteRate/5)"
}

val fridgeContent = listOf(Dish("🥦", 34, 2.3f), Dish("🧃", 34, 4.9f), Dish("🍨", 207, 4.7f))

val tastyDishes = fridgeContent.sortedByDescending { it.tasteRate }
println(tastyDishes) // [Dish(🧃: 34 cal, taste 4.9/5), Dish(🍨: 207 cal, taste 4.7/5), Dish(🥦: 34 cal, taste 2.3/5)]

val energeticDishes = fridgeContent.sortedByDescending { it.calories }
// note that the sorting is stable, so the 🥦 is before the 🧃
println(energeticDishes) // [Dish(🍨: 207 cal, taste 4.7/5), Dish(🥦: 34 cal, taste 2.3/5), Dish(🧃: 34 cal, taste 4.9/5)]

// the original collection remains unchanged
println(fridgeContent) // [Dish(🥦: 34 cal, taste 2.3/5), Dish(🧃: 34 cal, taste 4.9/5), Dish(🍨: 207 cal, taste 4.7/5)] 
   //sampleEnd
}

inline fun <R : Comparable<R>> ByteArray.sortedByDescending(crossinline selector: (Byte) -> R?): List<Byte>
inline fun <R : Comparable<R>> ShortArray.sortedByDescending(crossinline selector: (Short) -> R?): List<Short>
inline fun <R : Comparable<R>> IntArray.sortedByDescending(crossinline selector: (Int) -> R?): List<Int>
inline fun <R : Comparable<R>> LongArray.sortedByDescending(crossinline selector: (Long) -> R?): List<Long>
inline fun <R : Comparable<R>> FloatArray.sortedByDescending(crossinline selector: (Float) -> R?): List<Float>
inline fun <R : Comparable<R>> DoubleArray.sortedByDescending(crossinline selector: (Double) -> R?): List<Double>
inline fun <R : Comparable<R>> BooleanArray.sortedByDescending(crossinline selector: (Boolean) -> R?): List<Boolean>
inline fun <R : Comparable<R>> CharArray.sortedByDescending(crossinline selector: (Char) -> R?): List<Char>

Возвращает список всех элементов, отсортированных по убыванию в соответствии с естественным порядком сортировки значений, возвращаемых указанной функцией селектора.

Сортировка стабильная. Это означает, что элементы, для которых селектор вернул одинаковые значения, сохраняют взаимный порядок после сортировки.

Примеры

import kotlin.math.*
import kotlin.test.*

fun main() { 
   //sampleStart 
   val unsorted = intArrayOf(3, 1, 2, 4)

val sortedByValue = unsorted.sortedByDescending { it % 3 }
// the sorting is stable: the order of 1 (1 % 3 == 1) and 4 (4 % 3 == 1) was preserved
println(sortedByValue) // [2, 1, 4, 3]

val mapping = mapOf(1 to "one", 2 to "two", 3 to "three", 4 to "four")
val sortedByPronunciation = unsorted.sortedByDescending {
    // take a key to sort by from the mapping
    mapping.getOrDefault(it, "unknown")
}
// two > three > one > four, lexicographically
println(sortedByPronunciation) // [2, 3, 1, 4]

// the original array remains unchanged
println(unsorted.toList()) // [3, 1, 2, 4] 
   //sampleEnd
}

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/sorted-by-descending.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API