Интерфейс Java ConcurrentMap
Интерфейс Java ConcurrentMap
В этом руководстве мы узнаем об интерфейсе Java ConcurrentMap и его методах.
ConcurrentMap интерфейс фреймворка коллекций Java предоставляет поточно-ориентированную карту. То есть несколько потоков могут одновременно обращаться к карте, не влияя на согласованность записей в карте.
ConcurrentMap называется синхронизированной картой.
Он расширяет интерфейс карты.
<час>Класс, реализующий ConcurrentMap
С ConcurrentMap это интерфейс, мы не можем создавать из него объекты.
Чтобы использовать функциональные возможности ConcurrentMap интерфейс, нам нужно использовать класс ConcurrentHashMap который его реализует.

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