Интерфейс карты не является подтипом интерфейса коллекции. Поэтому он ведет себя немного иначе, чем остальные типы коллекций.

В моей предыдущей статье мы обсуждали списки, очереди и наборы Java в интерфейсе коллекции Java. Если вы не знакомы со списками, очередями и наборами. Давайте погрузимся в интерфейс карты Java.

Что такое интерфейс карты Java?

Интерфейс карты присутствует в пакете java.util и представляет собой сопоставление между ключом и значением. Интерфейс карты не является подтипом Интерфейса коллекции. Поэтому он ведет себя немного иначе, чем остальные типы коллекций.

Карта - это объект, который сопоставляет ключи со значениями. Карта не может содержать повторяющиеся ключи: каждый ключ может соответствовать не более чем одному значению. Он моделирует абстракцию математической функции. Карта интерфейса включает методы для основных операций (таких как put, get, remove, containsKey, containsValue, size и empty).

Map<Key, Value> numbers = new HashMap<>();
Map<Key, Value> numbers = new LinkedHashMap<>();
Map<Key, Value> numbers = new TreeMap<>();

Иерархия интерфейса карты

Свойства интерфейса карты

  • Имея ключ и значение, мы можем сохранить значение в объекте Map. После того, как значение сохранено, вы можете получить его, используя его ключ.
  • Некоторые методы выдают NoSuchElementException, когда в вызывающей карте нет элементов.
  • ClassCastException выдается, когда объект несовместим с элементами на карте.
  • NullPointerException выдается, если делается попытка использовать нулевой объект, а значение null не допускается на карте.
  • UnsupportedOperationException выдается при попытке изменить неизменяемую карту.

1. HashMap

Класс Java HashMap реализует интерфейс Map, который позволяет нам хранить пары ключ и значение, где ключи должны быть уникальными. Если вы попытаетесь вставить повторяющийся ключ, он заменит элемент соответствующего ключа.

HashMap<Key,Value> map1= new HashMap<>();

Основные факты о Java Hash Map

  • Содержит значения на основе ключа.
  • Содержит только уникальные ключи.
  • Он может иметь один нулевой ключ и несколько нулевых значений.
  • Он не поддерживает порядок.

Давайте рассмотрим следующий пример, чтобы получить четкое представление о Hash Maps.

2. LinkedHashMap

Класс Java LinkedHashMap представляет собой реализацию Hashtable и Linked list интерфейса Map с предсказуемым порядком итераций. Он наследует класс HashMap и реализует интерфейс Map.

LinkedHashMap<Key,Value> map1= new LinkedHashMap<>();

Основные факты о Java LinkedHash Map

  • Содержит значения на основе ключа.
  • Содержит уникальные элементы.
  • Он может иметь один нулевой ключ и несколько нулевых значений.
  • Сохраняет порядок размещения.

Давайте рассмотрим следующий пример, чтобы получить четкое представление о LinkedHash Maps.

TreeMap

Класс Java TreeMap представляет собой красно-черную древовидную реализацию. Он реализует интерфейс NavigableMap и расширяет класс AbstractMap. Он обеспечивает эффективные средства хранения пар ключ-значение в отсортированном порядке.

TreeMap<Key,Value> map1= new TreeMap<>();

Основные факты о Java TreeMap

  • Содержит значения на основе ключа.
  • Содержит только уникальные элементы.
  • У него не может быть нулевого ключа, но может быть несколько нулевых значений.
  • Сохраняет порядок возрастания.

Давайте рассмотрим следующий пример, чтобы получить четкое представление о TreeMaps.

Заключение

В конце этой статьи мы изучили основные концепции интерфейса карты Java. Кроме того, мы исследовали преимущества интерфейса карты в Java. Надеюсь, эта статья поможет вам понять эти концепции. В ближайшее время встретимся с еще одной интересной статьей.

Спасибо!

Удачного обучения 🙌😊

использованная литература

Интерфейс карты в Java - GeeksforGeeks. Https://www.geeksforgeeks.org/map-interface-java-examples/

Java - Интерфейс карты - Учебное пособие. Https://www.tutorialspoint.com/java/java_map_interface.htm

HashMap в Java - как это работает? Https://javarevisited.blogspot.com/2011/02/how-hashmap-works-in-java.html

TreeMap в Java - javatpoint. Https://www.javatpoint.com/java-treemap