Функция toSortedMap
Функция toSortedMap преобразует коллекцию пар
ключ-значение в отсортированную карту типа SortedMap.
Элементы карты автоматически сортируются по ключам
в естественном порядке. Также можно передать компаратор
для определения собственного порядка сортировки.
Импорт
import kotlin.collections.toSortedMap
Синтаксис
fun <K : Comparable<K>, V> Iterable<Pair<K, V>>.toSortedMap(): SortedMap<K, V>
fun <K, V> Iterable<Pair<K, V>>.toSortedMap(comparator: Comparator<in K>): SortedMap<K, V>
fun <K : Comparable<K>, V> Map<out K, V>.toSortedMap(): SortedMap<K, V>
fun <K, V> Map<out K, V>.toSortedMap(comparator: Comparator<in K>): SortedMap<K, V>
Пример
Преобразуем список пар в отсортированную карту с сортировкой по ключам в естественном порядке:
val pairs = listOf(3 to "c", 1 to "a", 2 to "b", 5 to "e", 4 to "d")
val res: SortedMap<Int, String> = pairs.toSortedMap()
println(res)
Результат выполнения кода:
SortedMap {1=a, 2=b, 3=c, 4=d, 5=e}
Пример
Преобразуем существующую карту в отсортированную с сортировкой по ключам в естественном порядке:
val map = mapOf("zebra" to 5, "apple" to 1, "banana" to 2)
val res: SortedMap<String, Int> = map.toSortedMap()
println(res)
Результат выполнения кода:
SortedMap {apple=1, banana=2, zebra=5}
Пример
Используем компаратор для сортировки ключей в обратном порядке:
val pairs = listOf(1 to "a", 3 to "c", 2 to "b", 5 to "e", 4 to "d")
val comparator = compareByDescending<Int> { it }
val res: SortedMap<Int, String> = pairs.toSortedMap(comparator)
println(res)
Результат выполнения кода:
SortedMap {5=e, 4=d, 3=c, 2=b, 1=a}
Пример
Создаем отсортированную карту из пар с строковыми ключами, используя компаратор для сортировки по длине строки:
val pairs = listOf("apple" to 5, "kiwi" to 4, "banana" to 6, "pear" to 4)
val comparator = compareBy<String> { it.length }
val res: SortedMap<String, Int> = pairs.toSortedMap(comparator)
println(res)
Результат выполнения кода:
SortedMap {kiwi=4, pear=4, apple=5, banana=6}
Смотрите также
-
функцию
toMap,
которая преобразует коллекцию в обычную карту -
функцию
toMutableMap,
которая преобразует коллекцию в изменяемую карту -
функцию
toList,
которая преобразует коллекцию в список -
функцию
toSet,
которая преобразует коллекцию в множество