V tej vadnici bomo spoznali vmesnik Java ConcurrentMap in njegove metode.
ConcurrentMap
Vmesnik okviru Java zbirk zagotavlja niti varna zemljevid. To pomeni, da lahko več niti hkrati dostopa do zemljevida, ne da bi to vplivalo na doslednost vnosov na zemljevidu.
ConcurrentMap
je znan kot sinhronizirani zemljevid.
Razširi vmesnik Map.
Razred, ki izvaja ConcurrentMap
Ker ConcurrentMap
je vmesnik, iz njega ne moremo ustvarjati predmetov.
Za uporabo funkcionalnosti ConcurrentMap
vmesnika moramo uporabiti razred, ConcurrentHashMap
ki ga izvaja.
Kako uporabljati ConcurrentMap?
Za uporabo ConcurrentMap
moramo najprej uvoziti java.util.concurrent.ConcurrentMap
paket. Ko uvozimo paket, je opisano, kako lahko ustvarimo sočasni zemljevid.
// ConcurrentMap implementation by ConcurrentHashMap CocurrentMap numbers = new ConcurrentHashMap();
V zgornji kodi smo ustvarili sočasni zemljevid z imenom številke.
Tukaj,
- Ključ - enolični identifikator, ki se uporablja za povezovanje vsakega elementa (vrednosti) na zemljevidu
- Vrednost - elementi, povezani s ključi na zemljevidu
Metode ConcurrentMap
ConcurrentMap
Vmesnik vključuje vse metode v Map
vmesniku. To je zato, ker Map
je super vmesnik ConcurrentMap
vmesnika.
Poleg vseh teh metod so tu še metode, specifične za ConcurrentMap
vmesnik.
- putIfAbsent () - na zemljevid vstavi navedeni ključ / vrednost, če navedeni ključ še ni povezan z nobeno vrednostjo.
- compute () - Izračuna vnos (preslikava ključ / vrednost) za navedeni ključ in njegovo predhodno preslikano vrednost.
- computeIfAbsent () - izračuna vrednost z uporabo podane funkcije za navedeni ključ, če ključ še ni preslikan z nobeno vrednostjo.
- computeIfPresent () - Izračuna nov vnos (preslikava ključa / vrednosti) za navedeni ključ, če je ključ že preslikan z navedeno vrednostjo.
- forEach () - Dostopajte do vseh vnosov zemljevida in izvedite navedena dejanja.
- merge () - združi novo določeno vrednost s staro vrednostjo določenega ključa, če je ključ že preslikan na določeno vrednost. Če ključ še ni preslikan, metoda preprosto poveže določeno vrednost z našim ključem.
Če želite izvedeti več, obiščite Java ConcurrentMap (uradna dokumentacija Java).
Izvajanje ConcurrentMap v 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); ) )
Izhod
ConcurrentMap: (One = 1, Two = 2, Three = 3) Dostopna vrednost: 1 Odstranjena vrednost: 2
Če želite izvedeti več o tem ConcurrentHashMap
, obiščite Java ConcurrentHashMap.