Интерфейс Java ConcurrentMap

В этом руководстве мы узнаем об интерфейсе 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.

Интересные статьи...