W tym samouczku poznamy interfejs Java ConcurrentMap i jego metody.
ConcurrentMap
Interfejs zbiorach ramach Java dostarcza wątku bezpieczny mapę. Oznacza to, że wiele wątków może uzyskać dostęp do mapy jednocześnie bez wpływu na spójność wpisów w mapie.
ConcurrentMap
jest znany jako zsynchronizowana mapa.
Rozszerza interfejs Map.
Klasa implementująca ConcurrentMap
Ponieważ ConcurrentMap
jest to interfejs, nie możemy tworzyć z niego obiektów.
Aby skorzystać z funkcjonalności ConcurrentMap
interfejsu, musimy skorzystać z klasy, ConcurrentHashMap
która go implementuje.
Jak korzystać z ConcurrentMap?
Aby użyć ConcurrentMap
, musimy najpierw zaimportować java.util.concurrent.ConcurrentMap
pakiet. Po zaimportowaniu pakietu, oto jak możemy stworzyć współbieżną mapę.
// ConcurrentMap implementation by ConcurrentHashMap CocurrentMap numbers = new ConcurrentHashMap();
W powyższym kodzie stworzyliśmy współbieżną mapę nazwaną liczbami.
Tutaj,
- Klucz - unikalny identyfikator służący do powiązania każdego elementu (wartości) na mapie
- Wartość - elementy skojarzone z kluczami w mapie
Metody ConcurrentMap
ConcurrentMap
Interfejs obejmuje wszystkie sposoby przez Map
interfejs. To dlatego, że Map
jest super interfejsem ConcurrentMap
interfejsu.
Oprócz tych wszystkich metod, oto metody specyficzne dla ConcurrentMap
interfejsu.
- putIfAbsent () - wstawia określony klucz / wartość do mapy, jeśli określony klucz nie jest już powiązany z żadną wartością.
- compute () - Oblicza wpis (mapowanie klucz / wartość) dla określonego klucza i jego wcześniej zamapowanej wartości.
- computeIfAbsent () - oblicza wartość przy użyciu określonej funkcji dla określonego klucza, jeśli klucz nie jest już zamapowany na żadną wartość.
- computeIfPresent () - Oblicza nowy wpis (mapowanie klucz / wartość) dla określonego klucza, jeśli klucz jest już zamapowany na określoną wartość.
- forEach () - Uzyskaj dostęp do wszystkich wpisów mapy i wykonaj określone czynności.
- merge () - scala nową określoną wartość ze starą wartością określonego klucza, jeśli klucz jest już zamapowany na określoną wartość. Jeśli klucz nie jest jeszcze zamapowany, metoda po prostu kojarzy określoną wartość z naszym kluczem.
Aby dowiedzieć się więcej, odwiedź stronę Java ConcurrentMap (oficjalna dokumentacja Java).
Implementacja ConcurrentMap w 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); ) )
Wynik
ConcurrentMap: (One = 1, Two = 2, Three = 3) Dostępna wartość: 1 Usunięta wartość: 2
Aby dowiedzieć się więcej ConcurrentHashMap
, odwiedź stronę Java ConcurrentHashMap.