В този урок ще научим за интерфейса на Java ConcurrentMap и неговите методи.
В ConcurrentMap
интерфейса на колекции рамките на Java осигурява нишка безопасно картата. Тоест, множество нишки могат да имат достъп до картата едновременно, без да се засяга последователността на записите в картата.
ConcurrentMap
е известен като синхронизирана карта.
Той разширява интерфейса на картата.
Клас, който реализира ConcurrentMap
Тъй като ConcurrentMap
е интерфейс, не можем да създаваме обекти от него.
За да използваме функционалностите на ConcurrentMap
интерфейса, трябва да използваме класа, ConcurrentHashMap
който го реализира.
Как да използвам ConcurrentMap?
За да използваме ConcurrentMap
, първо трябва да импортираме java.util.concurrent.ConcurrentMap
пакета. След като импортираме пакета, ето как можем да създадем едновременна карта.
// ConcurrentMap implementation by ConcurrentHashMap CocurrentMap numbers = new ConcurrentHashMap();
В горния код създадохме едновременна карта с имена числа.
Тук,
- Ключ - уникален идентификатор, използван за свързване на всеки елемент (стойност) в карта
- Стойност - елементи, свързани с ключове в карта
Методи на ConcurrentMap
В ConcurrentMap
интерфейса включва всички методи на Map
интерфейса. Това е така, защото Map
е супер интерфейсът на ConcurrentMap
интерфейса.
Освен всички тези методи, тук са и методите, специфични за ConcurrentMap
интерфейса.
- putIfAbsent () - Вмъква посочения ключ / стойност в картата, ако посоченият ключ вече не е свързан с някаква стойност.
- compute () - Изчислява запис (картографиране на ключ / стойност) за посочения ключ и неговата предварително картографирана стойност.
- computeIfAbsent () - Изчислява стойност, използвайки посочената функция за посочения ключ, ако ключът вече не е картографиран с някаква стойност.
- computeIfPresent () - Изчислява нов запис (съпоставяне на ключ / стойност) за посочения ключ, ако ключът вече е картографиран с посочената стойност.
- forEach () - Достъп до всички записи на карта и извършване на посочените действия.
- merge () - Обединява новата определена стойност със старата стойност на посочения ключ, ако ключът вече е съпоставен с определена стойност. Ако ключът още не е картографиран, методът просто свързва посочената стойност с нашия ключ.
За да научите повече, посетете Java ConcurrentMap (официална документация за Java).
Внедряване на ConcurrentMap в ConcurrentHashMap
import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ConcurrentHashMap; class Main ( public static void main(String() args) ( // Creating ConcurrentMap using ConcurrentHashMap ConcurrentMap numbers = new ConcurrentHashMap(); // Insert elements to map numbers.put("Two", 2); numbers.put("One", 1); numbers.put("Three", 3); System.out.println("ConcurrentMap: " + numbers); // Access the value of specified key int value = numbers.get("One"); System.out.println("Accessed Value: " + value); // Remove the value of specified key int removedValue = numbers.remove("Two"); System.out.println("Removed Value: " + removedValue); ) )
Изход
ConcurrentMap: (One = 1, Two = 2, Three = 3) Достъпна стойност: 1 Премахната стойност: 2
За да научите повече за ConcurrentHashMap
, посетете Java ConcurrentHashMap.