Функция toSortedMap

Функция toSortedMap преобразует коллекцию пар ключ-значение в отсортированную карту типа SortedMap. Элементы карты автоматически сортируются по ключам в естественном порядке. Также можно передать компаратор для определения собственного порядка сортировки.

Импорт

kotlinimport kotlin.collections.toSortedMap

Синтаксис

kotlinfun <K : Comparable<K>, V> Iterable<Pair<K, V>>.toSortedMap(): SortedMap<K, V>
kotlinfun <K, V> Iterable<Pair<K, V>>.toSortedMap(comparator: Comparator<in K>): SortedMap<K, V>
kotlinfun <K : Comparable<K>, V> Map<out K, V>.toSortedMap(): SortedMap<K, V>
kotlinfun <K, V> Map<out K, V>.toSortedMap(comparator: Comparator<in K>): SortedMap<K, V>

Пример

Преобразуем список пар в отсортированную карту с сортировкой по ключам в естественном порядке:

kotlinval 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)

Результат выполнения кода:

kotlinSortedMap {1=a, 2=b, 3=c, 4=d, 5=e}

Пример

Преобразуем существующую карту в отсортированную с сортировкой по ключам в естественном порядке:

kotlinval map = mapOf("zebra" to 5, "apple" to 1, "banana" to 2)
val res: SortedMap<String, Int> = map.toSortedMap()
println(res)

Результат выполнения кода:

kotlinSortedMap {apple=1, banana=2, zebra=5}

Пример

Используем компаратор для сортировки ключей в обратном порядке:

kotlinval 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)

Результат выполнения кода:

kotlinSortedMap {5=e, 4=d, 3=c, 2=b, 1=a}

Пример

Создаем отсортированную карту из пар с строковыми ключами, используя компаратор для сортировки по длине строки:

kotlinval 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)

Результат выполнения кода:

kotlinSortedMap {kiwi=4, pear=4, apple=5, banana=6}

Смотрите также

  • функцию toMap,
    которая преобразует коллекцию в обычную карту
  • функцию toMutableMap,
    которая преобразует коллекцию в изменяемую карту
  • функцию toList,
    которая преобразует коллекцию в список
  • функцию toSet,
    которая преобразует коллекцию в множество