Java Map является частью структуры коллекций. Интерфейс карты основан на паре ключ-значение. Он сопоставляет уникальные ключи со значениями. Интерфейс Map не является подтипом интерфейса Collection. Интерфейс карты действует аналогично коллекциям, но немного отличается от остальных типов коллекций. Он не может содержать повторяющиеся ключи, однако допускаются повторяющиеся значения.
Существует два интерфейса для реализации Map в Java.
1. Карта
2. SortedMap
В Java есть три класса Map:
1. Хэш-карта
2. Хэш-таблица
3. Карта дерева
4. ConcurrentHashMap
5. LinkedHashMap.
Карта не может содержать повторяющиеся ключи, и каждый ключ может соответствовать не более чем одному значению. HashMap и LinkedHashMap допускают нулевой ключ и нулевое значение, но TreeMap не допускает нулевой ключ и нулевое значение. HashMap не имеет предсказуемого порядка, но LinkedHashMap TreeMap имеет предсказуемый порядок.
HashMap: HashMap реализует все операции карты и допускает нулевые значения и один нулевой ключ. HashMap не поддерживает порядок элементов ключ-значение. Поэтому рассмотрите возможность использования HashMap, когда порядок не имеет значения и допустимы значения NULL.
Подробный пост о HashMap
LinkedHashMap:LinkedHashMap — это реализация Map, она наследует класс HashMap. Он допускает нулевые значения и нулевой ключ. Он поддерживает порядок вставки. Поэтому рассмотрите возможность использования LinkedHashMap, если вы хотите, чтобы карта с парами ключ-значение сортировалась по их порядку вставки. Отсортированная карта. Он поддерживает восходящий порядок. Он не допускает нулей. Поэтому подумайте об использовании TreeMap, если вы хотите, чтобы карта сортировала пары ключ-значение в естественном порядке ключей.
Подробный пост на TreeMap
Важно помнить:
- Карта не допускает повторяющихся ключей, но допускает повторяющиеся значения.
- HashMap и LinkedHashMap допускают нулевые ключи и нулевые значения, но TreeMap не допускает никаких нулевых ключей или значений.
- Карта не может быть пройдена, поэтому вам нужно чтобы преобразовать его в Set с помощью метода keySet() или entrySet().
Интерфейс карты включает методы для основных операций (таких как поместить, получить, удалить, containsKey, containsValue, size, и empty), массовые операции (такие как putAll и clear) и представления коллекций (такие как keySet, entrySet, и значения).
Методы в интерфейсе карты:
- public Object put(Object key, Object value): этот метод используется для вставки запись на карте.
- public void putAll(Map m): этот метод используется для вставки указанной карты в эту карту.
- public Object remove(Object k): этот метод используется для удаления записи, ключ которой равен k.
- public Object get(Object k): этот метод используется для возврата значения, связанного с ключом k.
- public boolean containsKey(Object k): этот метод возвращает true, если вызывающая карта содержит k в качестве ключа. В противном случае возвращается false.
- public Set keySet(): этот метод используется для возврата набора, содержащего ключи в вызывающей карте. Этот метод
- предоставляет набор ключей в вызывающей карте.
- public Set entrySet(): этот метод используется для возврата набора, содержащего записи в карте. Набор содержит объекты типа Map.Entry. Этот метод обеспечивает представление множества вызываемой карты.
Представления коллекции
Методы просмотра коллекции позволяют рассматривать Карту как Коллекцию следующими способами.
- keySet – Набор ключей, содержащихся в Карте.
- values – Набор значений, содержащихся в Карте. Эта коллекция не является набором, поскольку несколько ключей могут сопоставляться с одним и тем же значением
- entrySet — набором пар ключ-значение, содержащимся в карте. Интерфейс Map предоставляет небольшой вложенный интерфейс, который называется Map. Entry, тип элементов в этом наборе.
Learn Collection in Java
Интерфейс Map.Entry:
Entry — это вспомогательный интерфейс Map. Мы могли бы получить к нему доступ с помощью Map.Entry. Он предоставляет методы для получения ключа и значения.
Методы интерфейса Map.Entry:
- Объект getKey() — используется для получения ключа.
- Object getValue() — используется для получения значения.
Пример использования программы Map.Entry:
12345678910111213141516171819202122232425 | упаковать мой пакет; импорт java.util.HashMap; импорт java.util.Hashtable; импорт java.util.Iterator; импорт java.util.Map; импорт java.util.Map.Entry; импорт java.util.Set; открытый класс MapsClassA {public static void main(String [] args) {Map<String,String> value = new HashMap<>(); value.put(“Имя”, “Радж”);value.put(“Страна” , “Индия”);value.put(null, null);value.put(“Null Value”, null); for(Map.Entry<String, String> en : value.entrySet()) {System.out.println(en.getKey()+” = “+en.getValue());}}} |
< p>Пример программы:
12345678910111213141516171819202122232425262728293031323334353637383940414243440414243444454 class<упаковать мой пакет; импорт java.util.HashMap; импорт java.util.Hashtable; импорт java.util.Iterator; импорт java.util.Map; импорт java.util.Map.Entry; импорт java.util.Set; открытый класс MapsClassA {public static void main(String [] args) {Map<String,String> value = new HashMap<>();value.put(“Имя”, “Радж”);value.put(“Страна”, “Индия”);value.put(null, null);value.put(“Null Value”, null); System.out.println(значение); //Чтобы получить значение, мы используем метод get и передаем ключ как параметрSystem.out.println(“Значение имени: “+value.get(“Имя”));//Если мы передаем ключ, который не available – Вы не столкнетесь с какими-либо исключениями, вывод будет nullSystem.out.println(“Значение Name1: “+value.get(“Name1″));//Чтобы получить размер MapSystem.out.println(” Размер: “+value.size());/*Поскольку карта не является настоящей коллекцией, нет прямого метода для итерации по карте. Вместо этого мы можем итерировать карту, используя представления ее коллекции. Реализация любой карты должен предоставить три метода представления коллекции, т. е. keySet(), values() и entrySet()*///преобразование в Set, чтобы мы могли пересекать Set<String> keys = value.keySet();for(String key: keys) {System.out.println(key + ” = ” + value.get(key));}//Чтобы получить значениеSystem.out.println(“Значение страны: “+value.get(“Страна” ));//Чтобы удалить значениеvalue.remove(“Country”);//Посмотрим, каким будет значение после того, как мы применили удаление в приведенном выше оператореSystem.out.print ln(“Значение страны после удаления: “+value.get(“Страна”));}} |
Учебник по Java
TAG: qa