В этом руководстве мы узнаем об интерфейсе Java ConcurrentMap и его методах.
ConcurrentMap
Интерфейс рамок коллекций Java предоставляет поточно-карту. То есть несколько потоков могут получить доступ к карте одновременно, не влияя на согласованность записей на карте.
ConcurrentMap
называется синхронизированной картой.
Он расширяет интерфейс карты.
Класс, реализующий ConcurrentMap
Поскольку ConcurrentMap
это интерфейс, мы не можем создавать из него объекты.
Чтобы использовать функции ConcurrentMap
интерфейса, нам нужно использовать класс, ConcurrentHashMap
который его реализует.
Как использовать ConcurrentMap?
Чтобы использовать ConcurrentMap
, мы должны java.util.concurrent.ConcurrentMap
сначала импортировать пакет. После импорта пакета вот как мы можем создать параллельную карту.
// ConcurrentMap implementation by ConcurrentHashMap CocurrentMap numbers = new ConcurrentHashMap();
В приведенном выше коде мы создали параллельную карту с именем numbers.
Вот,
- Ключ - уникальный идентификатор, используемый для связи каждого элемента (значения) на карте.
- Значение - элементы, связанные ключами на карте
Методы 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: (Один = 1, Два = 2, Три = 3) Доступное значение: 1 Удаленное значение: 2
Чтобы узнать больше ConcurrentHashMap
, посетите Java ConcurrentHashMap.