РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
420 of 1163 menu

Интерфейс NavigableMap

Интерфейс NavigableMap расширяет интерфейс SortedMap и добавляет методы для навигации по карте. Он позволяет находить ближайшие ключи относительно заданного значения: наименьший ключ, больший или равный заданному, наибольший ключ, меньший или равный заданному, а также получать и удалять элементы с начала или конца карты. Карта хранит элементы в отсортированном порядке по ключам. Основные реализации этого интерфейса - это TreeMap и ConcurrentSkipListMap.

Синтаксис

NavigableMap<K, V> map = new TreeMap<>();

Основные методы

Интерфейс NavigableMap предоставляет следующие ключевые методы для навигации:

firstEntry() // первый (наименьший) элемент lastEntry() // последний (наибольший) элемент lowerEntry(K key) // элемент с ключом меньше заданного floorEntry(K key) // элемент с ключом меньше или равным ceilingEntry(K key) // элемент с ключом больше или равным higherEntry(K key) // элемент с ключом больше заданного pollFirstEntry() // извлечь и удалить первый элемент pollLastEntry() // извлечь и удалить последний элемент descendingMap() // карта в обратном порядке

Пример

Давайте создадим NavigableMap и найдем элементы относительно заданного ключа:

import java.util.NavigableMap; import java.util.TreeMap; public class Main { public static void main(String[] args) { NavigableMap<Integer, String> map = new TreeMap<>(); map.put(1, "a"); map.put(2, "b"); map.put(3, "c"); map.put(4, "d"); map.put(5, "e"); System.out.println(map.firstEntry()); System.out.println(map.lastEntry()); System.out.println(map.lowerEntry(3)); System.out.println(map.floorEntry(3)); System.out.println(map.ceilingEntry(3)); System.out.println(map.higherEntry(3)); } }

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

1=a 5=e 2=b 3=c 3=c 4=d

Пример

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

import java.util.NavigableMap; import java.util.TreeMap; public class Main { public static void main(String[] args) { NavigableMap<Integer, String> map = new TreeMap<>(); map.put(1, "a"); map.put(2, "b"); map.put(3, "c"); map.put(4, "d"); map.put(5, "e"); NavigableMap<Integer, String> res = map.descendingMap(); System.out.println(res); System.out.println(map.pollFirstEntry()); System.out.println(map.pollLastEntry()); System.out.println(map); } }

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

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

Пример

Давайте получим подкарты с помощью методов headMap, tailMap и subMap:

import java.util.NavigableMap; import java.util.TreeMap; public class Main { public static void main(String[] args) { NavigableMap<Integer, String> map = new TreeMap<>(); map.put(1, "a"); map.put(2, "b"); map.put(3, "c"); map.put(4, "d"); map.put(5, "e"); System.out.println(map.headMap(3, true)); System.out.println(map.tailMap(3, true)); System.out.println(map.subMap(2, true, 4, true)); } }

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

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

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

  • интерфейс Map,
    который является базовым интерфейсом для всех карт
  • метод put,
    который добавляет пару ключ-значение в карту
  • метод get,
    который возвращает значение по ключу
  • интерфейс NavigableMap,
    который предоставляет методы навигации по карте
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить