Интерфейс 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