English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массив

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений Java

Java Список (List)

Java Queue (очередь)

Java Map коллекция

Java Set коллекция

Java Вход/Вывод (I/O)

Java Reader/Writer

Другие темы Java

Интерфейс Java NavigableMap

В этом руководстве мы изучим пример Java NavigableMap интерфейса и его методы.

Интерфейс NavigableMap в Java集合 фреймворке предоставляет функциональность навигации между элементами карты.

Это считаетсяSortedMapодин из типов.

Классы, реализующие NavigableMap

Поскольку NavigableMap является интерфейсом, из него нельзя создать объект.

Для использования функций интерфейса NavigableMap нам нужно использовать класс TreeMap, который реализует NavigableMap.

Как использовать NavigableMap?

В Java我们必须导入java.util.NavigableMap пакет, чтобы использовать NavigableMap. После импорта пакета, NavigableMap можно создать следующим образом.

// NavigableMap由TreeMap类实现
NavigableMap<Key, Value> numbers = new TreeMap<>();

 В приведенном выше коде мы создали навигируемую карту класса TreeMap с именем numbers.

Здесь:

  • Key - уникальный идентификатор, используемый для ассоциации каждого элемента (значения) в карте

  • Value - элемент, связанный с ключом в карте

Методы NavigableMap

NavigableMap рассматривается как тип SortedMap. Это потому, что NavigableMap наследует интерфейс SortedMap.

Таким образом, в NavigableMap также можно использовать все методы SortedMap. Чтобы узнать, как определить эти методы в SortedMap, пожалуйста, обратитесь кJava SortedMap.

Однако в NavigableMap определены некоторые методы SortedMap по-другому (headMap(), tailMap() и subMap()).

Давайте посмотрим, как определить эти методы NavigableMap.

headMap(key, booleanValue)

Метод headMap() возвращает все элементы, связанные с ключами до указанного ключа (key).

booleanValue является опциональным параметром. Значением по умолчанию является false.

Если booleanValue равен true, то этот метод возвращает все элементы, связанные с ключами до указанного ключа (key), включая элементы, связанные с указанным ключом (key).

tailMap(key, booleanValue)

Метод tailMap() возвращает все элементы, связанные с ключами после указанного ключа (key), включая элементы, связанные с указанным ключом (key).

booleanValue является опциональным параметром. Значением по умолчанию является true.

Если booleanValue равен false, то этот метод возвращает все элементы, связанные с ключами после указанного ключа (key), но не включая элементы, связанные с указанным ключом (key).

subMap(k1, bv1, k2, bv2)

Метод subMap() возвращает все элементы, связанные с ключами k1 и k2, включая элементы, связанные с k1.

bv1 и bv2 являются опциональными параметрами. Значением по умолчанию для bv1 является true, для bv2 - false.

Если bv1 равен false, то этот метод возвращает все элементы, связанные с ключами k1 и k2, но не включая элементы, связанные с k1.

Если bv2 равен true, то этот метод возвращает все элементы, связанные с ключами k1 и k2, включая элементы, связанные с k1.

Другие методы

NavigableMap предоставляет различные методы, которые можно использовать для定位 элементов карты.

  • DescendingMap() - обратный порядок записей карты

  • DescendingKeyMap() - обратный порядок ключей карты

  • ceilingEntry() - возвращает запись с минимальным ключом из всех записей с ключом, не меньшего, чем указанного ключа

  • ceilingKey() - возвращает минимальный ключ, не меньшего, чем указанный ключ

  • floorEntry() - возвращает запись с максимальным ключом из всех записей с ключом, не большего, чем указанного ключа

  • floorKey() - возвращает максимальный ключ, не большего, чем указанный ключ

  • HigherEntry() - возвращает запись с минимальным ключом из всех записей с ключом, большим указанного ключа

  • HigherKey() - возвращает минимальный ключ, больший чем указанный ключ

  • lowerEntry() - возвращает запись с максимальным ключом из всех записей с ключом, меньшим указанного ключа

  • lowerKey() - возвращает максимальный ключ, меньший niż указанный ключ

  • firstEntry() - возвращает первую запись карты (элемент с минимальным ключом)

  • lastEntry() - возвращает последнюю запись карты (элемент с максимальным ключом)

  • pollFirstEntry() - возвращает и удаляет первую запись карты

  • pollLastEntry() - возвращает и удаляет последнюю запись карты

Реализация NavigableMap в TreeMap

import java.util.NavigableMap;
import java.util.TreeMap;
class Main {
    public static void main(String[] args) {
        //использование TreeMap для создания NavigableMap
        NavigableMap<String, Integer> numbers = new TreeMap<>();
        //вставка элементов в map
        numbers.put("Two", 2);
        numbers.put("One", 1);
        numbers.put("Three", 3);
        System.out.println("NavigableMap: " + numbers);
        //доступ к первому элементу карты
        System.out.println("первый элемент: " + numbers.firstEntry());
        //доступ к последнему элементу карты
        System.out.println("Последний элемент: " + numbers.lastEntry());
        //Удалить первый элемент из отображения
        System.out.println("Удалить первый элемент: " + numbers.pollFirstEntry());
        //Удалить последний элемент из карты
        System.out.println("Удалить последний элемент: " + numbers.pollLastEntry());
    }
}

Результат вывода

NavigableMap: {One=1, Three=3, Two=2}
Первый элемент: One=1
Последний элемент: Two=2
Удалить первый элемент: One=1
Удалить последний элемент: Two=2

Чтобы узнать больше о TreeMap, пожалуйста, посетитеJava TreeMap.

Теперь мы знаем интерфейс NavigableMap, и в следующем уроке мы будем использовать класс TreeMap, чтобы подробно изучить его реализацию.