Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Освоение Java NavigableMap: возможности, методы и реализация TreeMap

Интерфейс Java NavigableMap

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

Интерфейс NavigableMap Java Collections Framework предоставляет возможности навигации по записям карты. Это специализированный SortedMap, расширяющий его функциональность методами для эффективного двунаправленного обхода.


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

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


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

Сначала импортируйте интерфейс:

import java.util.NavigableMap;
import java.util.TreeMap;

Затем создайте экземпляр:

// Реализация NavigableMap классом TreeMap
NavigableMap<Key, Value> numbers = new TreeMap<>();

В коде выше numbers — это TreeMap, хранящий пары ключ-значение. Key — уникальный идентификатор, а Value — ассоциированные данные.


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

Все операции SortedMap доступны, но несколько переопределены для более строгого контроля. Ключевые методы включают:

headMap(key, booleanInclusive)

Возвращает представление части карты, ключи которой строго меньше key, когда booleanInclusive — false (по умолчанию). Если booleanInclusive — true, возвращаемая карта включает запись для key.

tailMap(key, booleanInclusive)

Возвращает представление части карты, ключи которой больше или равны key, когда booleanInclusive — true (по умолчанию). Передача false исключает запись key.

subMap(fromKey, fromInclusive, toKey, toInclusive)

Предоставляет представление между fromKey и toKey. Значения по умолчанию: fromInclusive = true и toInclusive = false. Изменение этих флагов контролирует, включены ли граничные ключи в результирующую карту.


Дополнительные методы навигации

Для официальной спецификации см. документацию Java NavigableMap.


Пример реализации TreeMap

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

Вывод

NavigableMap: {One=1, Three=3, Two=2} First Entry: One=1 Last Entry: Two=2 Removed First Entry: One=1 Removed Last Entry: Two=2

Узнайте больше о TreeMap в документации Java TreeMap.


С твёрдым пониманием интерфейса NavigableMap и его реализации TreeMap вы можете строить эффективные отсортированные структуры данных для ваших Java-приложений.

java

  1. Освоение интерфейсов в C#: определение, реализация и практические примеры
  2. Освоение операторов Java: типы, синтаксис и практические примеры
  3. Интерфейсы в Java: концепции, реализация и лучшие практики
  4. Try-with-resources в Java: автоматическое управление ресурсами
  5. Освоение интерфейса NavigableSet в Java: навигация, сортировка и практические примеры
  6. Освоение Java Lambda-выражений: от основ к Stream API
  7. Интерфейс vs Абстрактный класс в Java: Как выбрать правильную абстракцию
  8. Интерфейсы в Java: определение, использование и лучшие практики
  9. Java 9 Private Interface Methods: инкапсуляция и повторное использование кода
  10. Логирование в Java: лучшие практики для надежного кода