Інтерфейс Java ConcurrentMap

У цьому підручнику ми дізнаємося про інтерфейс Java ConcurrentMap та його методи.

ConcurrentMapІнтерфейс рамок колекцій Java надає поточно-карту. Тобто, декілька потоків можуть отримати доступ до карти одночасно, не впливаючи на узгодженість записів на карті.

ConcurrentMap відомий як синхронізована карта.

Він розширює інтерфейс Map.

Клас, який реалізує 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.

Цікаві статті...