Интерфейс NavigableMap

Интерфейс NavigableMap расширяет интерфейс SortedMap и предоставляет методы для навигации по карте на основе порядка ключей. Ключи должны быть сравниваемыми или сравниваться с помощью компаратора. Позволяет получать записи с ключами ближайшими к указанному значению.

Импорт

kotlinimport java.util.NavigableMap

Синтаксис

kotlininterface NavigableMap<K, V> : SortedMap<K, V>

Пример

Создадим объект NavigableMap и добавим в него несколько элементов:

kotlinval map: NavigableMap<Int, String> = TreeMap()
map[1] = "one"
map[3] = "three"
map[5] = "five"
map[7] = "seven"
map[9] = "nine"

println(map)

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

kotlin{1=one, 3=three, 5=five, 7=seven, 9=nine}

Пример

Используем метод lowerEntry для получения записи с наибольшим ключом, меньшим заданного:

kotlinval map: NavigableMap<Int, String> = TreeMap()
map[1] = "one"
map[3] = "three"
map[5] = "five"
map[7] = "seven"
map[9] = "nine"

val res = map.lowerEntry(6)
println(res)

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

kotlin5=five

Пример

Используем метод higherEntry для получения записи с наименьшим ключом, большим заданного:

kotlinval map: NavigableMap<Int, String> = TreeMap()
map[1] = "one"
map[3] = "three"
map[5] = "five"
map[7] = "seven"
map[9] = "nine"

val res = map.higherEntry(6)
println(res)

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

kotlin7=seven

Пример

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

kotlinval map: NavigableMap<Int, String> = TreeMap()
map[1] = "one"
map[3] = "three"
map[5] = "five"
map[7] = "seven"
map[9] = "nine"

val res = map.floorEntry(6)
println(res)

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

kotlin5=five

Пример

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

kotlinval map: NavigableMap<Int, String> = TreeMap()
map[1] = "one"
map[3] = "three"
map[5] = "five"
map[7] = "seven"
map[9] = "nine"

val res = map.ceilingEntry(6)
println(res)

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

kotlin7=seven

Пример

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

kotlinval map: NavigableMap<Int, String> = TreeMap()
map[1] = "one"
map[3] = "three"
map[5] = "five"

val first = map.pollFirstEntry()
println("First entry: $first")
println("Map after poll: $map")

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

kotlinFirst entry: 1=one
Map after poll: {3=three, 5=five}

Пример

Используем метод pollLastEntry для получения и удаления последней записи:

kotlinval map: NavigableMap<Int, String> = TreeMap()
map[1] = "one"
map[3] = "three"
map[5] = "five"

val last = map.pollLastEntry()
println("Last entry: $last")
println("Map after poll: $map")

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

kotlinLast entry: 5=five
Map after poll: {1=one, 3=three}

Пример

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

kotlinval map: NavigableMap<Int, String> = TreeMap()
map[1] = "one"
map[3] = "three"
map[5] = "five"

val descending = map.descendingMap()
println("Original: $map")
println("Descending: $descending")

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

kotlinOriginal: {1=one, 3=three, 5=five}
Descending: {5=five, 3=three, 1=one}

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

  • интерфейс SortedMap,
    который представляет отсортированную карту
  • интерфейс Map,
    который представляет базовую карту ключ-значение
  • класс TreeMap,
    который является реализацией NavigableMap
  • интерфейс NavigableSet,
    который представляет навигационное множество