U ovom uputstvu naučit ćemo o sučelju Java ConcurrentMap i njegovim metodama.
ConcurrentMap
Sučelje Java zbirki okvir pruža kartu nit-sigurno. Odnosno, više niti može pristupiti karti odjednom bez utjecaja na dosljednost unosa na karti.
ConcurrentMap
je poznat kao sinkronizirana karta.
Proširuje sučelje Map.
Klasa koja implementira ConcurrentMap
Budući da ConcurrentMap
je sučelje, od njega ne možemo stvarati objekte.
Da bismo koristili funkcionalnosti ConcurrentMap
sučelja, moramo koristiti klasu ConcurrentHashMap
koja ga implementira.
Kako koristiti ConcurrentMap?
Da bismo koristili ConcurrentMap
, prvo moramo uvesti java.util.concurrent.ConcurrentMap
paket. Nakon što uvozimo paket, evo kako možemo stvoriti istodobnu kartu.
// ConcurrentMap implementation by ConcurrentHashMap CocurrentMap numbers = new ConcurrentHashMap();
U gornjem kodu stvorili smo istodobnu kartu s brojevima.
Ovdje,
- Ključ - jedinstveni identifikator koji se koristi za povezivanje svakog elementa (vrijednosti) na karti
- Vrijednost - elementi pridruženi ključevima na karti
Metode istodobne karte
ConcurrentMap
Sučelje uključuje sve metode iz Map
sučelja. To je zato što Map
je super sučelje ConcurrentMap
sučelja.
Uz sve te metode, ovdje su i metode specifične za ConcurrentMap
sučelje.
- putIfAbsent () - ubacuje navedeni ključ / vrijednost u mapu ako navedeni ključ već nije povezan s bilo kojom vrijednošću.
- compute () - Izračunava unos (mapiranje ključa / vrijednosti) za navedeni ključ i njegovu prethodno mapiranu vrijednost.
- computeIfAbsent () - Izračunava vrijednost pomoću navedene funkcije za navedeni ključ ako ključ već nije mapiran s bilo kojom vrijednošću.
- computeIfPresent () - Izračunava novi unos (mapiranje ključa / vrijednosti) za navedeni ključ ako je ključ već mapiran s navedenom vrijednošću.
- forEach () - Pristupite svim unosima karte i izvršite navedene radnje.
- merge () - Spaja novu navedenu vrijednost sa starom vrijednošću navedenog ključa ako je ključ već mapiran na određenu vrijednost. Ako ključ još nije mapiran, metoda jednostavno pridružuje navedenu vrijednost našem ključu.
Da biste saznali više, posjetite Java ConcurrentMap (službena Java dokumentacija).
Implementacija ConcurrentMap u 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); ) )
Izlaz
ConcurrentMap: (One = 1, Two = 2, Three = 3) Pristupljena vrijednost: 1 Uklonjena vrijednost: 2
Da biste saznali više o ConcurrentHashMap
, posjetite Javu ConcurrentHashMap.