Функция sortedByDescending
Функция sortedByDescending выполняет сортировку элементов коллекции
по убыванию значений, полученных с помощью селекторной функции.
Возвращает новый список с отсортированными элементами.
Применяется к коллекциям типа Array, List, Set
и другим итерируемым коллекциям.
Синтаксис
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>
Пример
Отсортируем массив чисел по убыванию их абсолютных значений:
val numbers = arrayOf(-5, 3, -1, 4, -2)
val res = numbers.sortedByDescending { Math.abs(it) }
println(res)
Результат выполнения кода:
List<-5, 4, 3, -2, -1>
Пример
Отсортируем список строк по убыванию их длины:
val words = listOf("apple", "banana", "cherry", "date")
val res = words.sortedByDescending { it.length }
println(res)
Результат выполнения кода:
List<"banana", "cherry", "apple", "date">
Пример
Отсортируем множество объектов по убыванию значения их свойства:
data class Person(val name: String, val age: Int)
val people = setOf(
Person("Alice", 25),
Person("Bob", 30),
Person("Charlie", 20)
)
val res = people.sortedByDescending { it.age }
println(res)
Результат выполнения кода:
List<Person(name=Bob, age=30), Person(name=Alice, age=25), Person(name=Charlie, age=20)>
Пример
Для Map функция sortedByDescending применяется к записям (Entry),
и мы можем сортировать по ключам или значениям:
val map = mapOf("a" to 3, "b" to 1, "c" to 2)
val res = map.entries.sortedByDescending { it.value }
println(res)
Результат выполнения кода:
List<a=3, c=2, b=1>
Смотрите также
-
функцию
sortedBy,
которая выполняет сортировку по возрастанию -
функцию
sorted,
которая выполняет естественную сортировку элементов -
функцию
sortedWith,
которая выполняет сортировку с использованием компаратора