Интерфейс SortedMap
Интерфейс SortedMap представляет собой коллекцию,
которая хранит пары ключ-значение в отсортированном порядке
по ключам. Ключи должны быть сравниваемыми или использовать
специальный компаратор для определения порядка сортировки.
Наследуется от интерфейса Map и добавляет методы
для работы с отсортированными ключами.
Импорт
import kotlin.collections.SortedMap
Создание SortedMap
Для создания отсортированной карты можно использовать
функцию sortedMapOf:
val map: SortedMap<Int, String> = sortedMapOf(
3 to "c",
1 to "a",
2 to "b"
)
Результат выполнения кода:
SortedMap {1=a, 2=b, 3=c}
Пример
Создание SortedMap с компаратором для обратной сортировки:
val map: SortedMap<Int, String> = sortedMapOf(compareByDescending { it })
map[3] = "c"
map[1] = "a"
map[2] = "b"
println(map)
Результат выполнения кода:
SortedMap {3=c, 2=b, 1=a}
Методы SortedMap
Основные методы интерфейса SortedMap:
val map: SortedMap<Int, String> = sortedMapOf(
1 to "a",
2 to "b",
3 to "c",
4 to "d",
5 to "e"
)
val firstKey: Int = map.firstKey()
val lastKey: Int = map.lastKey()
val subMap: SortedMap<Int, String> = map.subMap(2, 4)
println("First key: $firstKey")
println("Last key: $lastKey")
println("SubMap: $subMap")
Результат выполнения кода:
First key: 1
Last key: 5
SubMap: {2=b, 3=c}
Пример
Использование методов headMap и tailMap:
val map: SortedMap<Int, String> = sortedMapOf(
1 to "a",
2 to "b",
3 to "c",
4 to "d",
5 to "e"
)
val head: SortedMap<Int, String> = map.headMap(3)
val tail: SortedMap<Int, String> = map.tailMap(3)
println("HeadMap: $head")
println("TailMap: $tail")
Результат выполнения кода:
HeadMap: {1=a, 2=b}
TailMap: {3=c, 4=d, 5=e}
Пример
Получение компаратора карты:
val map: SortedMap<String, Int> = sortedMapOf(compareByDescending { it.length })
map["apple"] = 1
map["banana"] = 2
map["cherry"] = 3
val comparator: Comparator<String>? = map.comparator()
println("Comparator: $comparator")
println("Map: $map")
Результат выполнения кода:
Comparator: java.util.Comparators$$Lambda$...
Map: {banana=2, cherry=3, apple=1}
Смотрите также
-
интерфейс
Map,
базовый интерфейс для работы с картами -
интерфейс
MutableMap,
интерфейс для изменяемых карт -
интерфейс
NavigableMap,
интерфейс для навигируемых карт с дополнительными методами -
класс
TreeMap,
реализация SortedMap на основе красно-черного дерева