Spec-Zone.ru › Kotlin 2

sortedByDescending

kotlin-stdlib/kotlin.sequences/sortedByDescending

Версия 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

Spec-Zone.ru

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