В този урок ще научим за интерфейса Java Map и неговите методи.
В Map
интерфейса на колекции рамките на Java предоставя функционалност на структурата на картата данни.
Работа на Карта
В Java елементите на Map
се съхраняват в двойки ключ / стойност . Ключовете са уникални стойности, свързани с отделни Стойности .
Картата не може да съдържа дублирани ключове. И всеки ключ е свързан с една стойност.
Можем да осъществяваме достъп и да променяме стойности, като използваме свързаните с тях ключове.
В горната диаграма имаме стойности: САЩ, Бразилия и Испания. И ние имаме съответни ключове: us, br и es.
Сега можем да получим достъп до тези стойности, като използваме съответните им ключове.
Забележка: В Map
интерфейса поддържа 3 различни групи:
- набор от ключове
- множеството от стойности
- набор от асоциации ключ / стойност (картографиране).
Следователно можем да имаме достъп до ключове, стойности и асоциации поотделно.
Класове, които прилагат Map
Тъй като Map
е интерфейс, не можем да създаваме обекти от него.
За да използваме функционалностите на Map
интерфейса, можем да използваме следните класове:
- HashMap
- EnumMap
- LinkedHashMap
- WeakHashMap
- TreeMap
Тези класове са дефинирани в рамката на колекциите и изпълняват Map
интерфейса.
![](https://cdn.wiki-base.com/4741423/java_map_interface_2.png.webp)
Интерфейси, които разширяват Map
В Map
интерфейса също се удължава с тези subinterfaces:
- SortedMap
- NavigableMap
- ConcurrentMap
![](https://cdn.wiki-base.com/4741423/java_map_interface_3.png.webp)
Как да използвам Map?
В Java трябва да импортираме java.util.Map
пакета, за да го използваме Map
. След като импортираме пакета, ето как можем да създадем карта.
// Map implementation using HashMap Map numbers = new HashMap();
В горния код създадохме Map
имена на числата. Използвахме HashMap
класа за реализиране на Map
интерфейса.
Тук,
- Ключ - уникален идентификатор, използван за свързване на всеки елемент (стойност) в карта
- Стойност - елементи, свързани с ключове в карта
Методи на картата
В Map
интерфейса включва всички методи на Collection
интерфейса. Това е така, защото Collection
е супер интерфейс на Map
.
Освен наличните в Collection
интерфейса методи , Map
интерфейсът включва и следните методи:
- put (K, V) - Вмъква асоциирането на ключ K и стойност V в картата. Ако ключът вече присъства, новата стойност замества старата стойност.
- putAll () - Вмъква всички записи от посочената карта в тази карта.
- putIfAbsent (K, V) - Вмъква асоциацията, ако ключът K вече не е свързан със стойността V.
- get (K) - Връща стойността, свързана с посочения ключ K. Ако ключът не бъде намерен, той се връща
null
. - getOrDefault (K, defaultValue) - Връща стойността, свързана с посочения ключ K. Ако ключът не е намерен, той връща defaultValue.
- containsKey (K) - Проверява дали посоченият ключ K присъства в картата или не.
- containsValue (V) - Проверява дали посочената стойност V присъства в картата или не.
- замени (K, V) - Заменете стойността на ключа K с новата посочена стойност V.
- replace (K, oldValue, newValue) - Заменя стойността на ключа K с новата стойност newValue само ако ключът K е свързан със стойността oldValue.
- remove (K) - Премахва записа от картата, представен с клавиша K.
- премахване (K, V) - Премахва записа от картата, който има ключ K, свързан със стойност V.
- keySet () - Връща набор от всички ключове, присъстващи в карта.
- values () - Връща набор от всички стойности, присъстващи в карта.
- entrySet () - Връща набор от всички съпоставяния ключ / стойност, присъстващи в карта.
Внедряване на интерфейса на картата
1. Внедряване на клас HashMap
import java.util.Map; import java.util.HashMap; class Main ( public static void main(String() args) ( // Creating a map using the HashMap Map numbers = new HashMap(); // Insert elements to the map numbers.put("One", 1); numbers.put("Two", 2); System.out.println("Map: " + numbers); // Access keys of the map System.out.println("Keys: " + numbers.keySet()); // Access values of the map System.out.println("Values: " + numbers.values()); // Access entries of the map System.out.println("Entries: " + numbers.entrySet()); // Remove Elements from the map int value = numbers.remove("Two"); System.out.println("Removed Value: " + value); ) )
Изход
Карта: (Едно = 1, Две = 2) Ключове: (Едно, Две) Стойности: (1, 2) Записи: (Едно = 1, Две = 2) Премахната стойност: 2
За да научите повече за HashMap
, посетете Java HashMap.
2. Внедряване на клас TreeMap
import java.util.Map; import java.util.TreeMap; class Main ( public static void main(String() args) ( // Creating Map using TreeMap Map values = new TreeMap(); // Insert elements to map values.put("Second", 2); values.put("First", 1); System.out.println("Map using TreeMap: " + values); // Replacing the values values.replace("First", 11); values.replace("Second", 22); System.out.println("New Map: " + values); // Remove elements from the map int removedValue = values.remove("First"); System.out.println("Removed Value: " + removedValue); ) )
Изход
Карта, използваща TreeMap: (First = 1, Second = 2) Нова карта: (First = 11, Second = 22) Премахната стойност: 11
За да научите повече за TreeMap
, посетете Java TreeMap.