sorted By Descending
Версия Kotlin: 1.0
inline fun <T, R : Comparable<R>> Sequence<T>.sortedByDescending(crossinline selector: (T) -> R?): Sequence<T>
Возвращает последовательность, элементы которой отсортированы по убыванию в соответствии с естественным порядком сортировки значений, возвращаемых указанной функцией селектора.
Сортировка является стабильной. Это означает, что элементы, для которых селектор вернул одинаковые значения, сохраняют взаимный порядок после сортировки.
Операция является промежуточной и сохраняющей состояние.
Примеры
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 = sequenceOf(Dish("🥦", 34, 2.3f), Dish("🧃", 34, 4.9f), Dish("🍨", 207, 4.7f))
val tastyDishes = fridgeContent.sortedByDescending { it.tasteRate }
println(tastyDishes.toList()) // [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.toList()) // [Dish(🍨: 207 cal, taste 4.7/5), Dish(🥦: 34 cal, taste 2.3/5), Dish(🧃: 34 cal, taste 4.9/5)]
// the original sequence's state remains unchanged
println(fridgeContent.toList()) // [Dish(🥦: 34 cal, taste 2.3/5), Dish(🧃: 34 cal, taste 4.9/5), Dish(🍨: 207 cal, taste 4.7/5)]
//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.sequences/sorted-by-descending.html