Класс TreeMap

Класс TreeMap представляет собой реализацию интерфейса SortedMap, которая хранит элементы в отсортированном порядке по ключам. Элементы автоматически сортируются по возрастанию ключей при добавлении. Для работы TreeMap требуется, чтобы ключи были сравнимыми (реализовывали интерфейс Comparable) или предоставлялся компаратор.

Импорт

kotlinimport java.util.TreeMap

Синтаксис

kotlinTreeMap<K, V>()
kotlinTreeMap<K, V>(comparator: Comparator<in K>)
kotlinTreeMap<K, V>(map: Map<out K, V>)
kotlinTreeMap<K, V>(map: SortedMap<K, out V>)

Пример

Создадим TreeMap с ключами типа Int и значениями типа String:

kotlinval map = TreeMap<Int, String>()
map[3] = "three"
map[1] = "one"
map[2] = "two"

println(map)

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

kotlin{1=one, 2=two, 3=three}

Пример

Создадим TreeMap с компаратором для сортировки по убыванию:

kotlinval map = TreeMap<Int, String>(compareByDescending { it })
map[3] = "three"
map[1] = "one"
map[2] = "two"

println(map)

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

kotlin{3=three, 2=two, 1=one}

Пример

Создадим TreeMap из существующей карты:

kotlinval originalMap = mapOf(3 to "three", 1 to "one", 2 to "two")
val treeMap = TreeMap(originalMap)

println(treeMap)

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

kotlin{1=one, 2=two, 3=three}

Пример

Используем методы firstKey и lastKey для получения минимального и максимального ключа:

kotlinval map = TreeMap<Int, String>()
map[3] = "three"
map[1] = "one"
map[2] = "two"

println("First key: " + map.firstKey())
println("Last key: " + map.lastKey())

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

kotlinFirst key: 1
Last key: 3

Пример

Используем метод subMap для получения подмножества элементов:

kotlinval map = TreeMap<Int, String>()
map[1] = "one"
map[2] = "two"
map[3] = "three"
map[4] = "four"
map[5] = "five"

val subMap = map.subMap(2, 4)
println(subMap)

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

kotlin{2=two, 3=three}

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

  • интерфейс SortedMap,
    который реализует TreeMap
  • интерфейс NavigableMap,
    который расширяет SortedMap
  • класс HashMap,
    который хранит элементы без гарантии порядка
  • класс LinkedHashMap,
    который сохраняет порядок вставки элементов