I denne veiledningen vil vi lære om Java ConcurrentMap-grensesnittet og dets metoder.
Den ConcurrentMap
grensesnittet til Java samlinger rammeverket gir en tråd-safe kartet. Det vil si at flere tråder kan få tilgang til kartet samtidig uten å påvirke konsistensen til oppføringene på et kart.
ConcurrentMap
er kjent som et synkronisert kart.
Det utvider kartgrensesnittet.
Klasse som implementerer ConcurrentMap
Siden ConcurrentMap
er et grensesnitt, kan vi ikke lage objekter fra det.
For å kunne bruke funksjonene til ConcurrentMap
grensesnittet, må vi bruke klassen ConcurrentHashMap
som implementerer det.
Hvordan bruke ConcurrentMap?
For å bruke ConcurrentMap
, må vi importere java.util.concurrent.ConcurrentMap
pakken først. Når vi har importert pakken, kan du lage et samtidig kart.
// ConcurrentMap implementation by ConcurrentHashMap CocurrentMap numbers = new ConcurrentHashMap();
I koden ovenfor har vi opprettet et samtidig kart med navn.
Her,
- Nøkkel - en unik identifikator som brukes til å knytte hvert element (verdi) til et kart
- Verdi - elementer tilknyttet nøkler i et kart
Metoder for ConcurrentMap
Den ConcurrentMap
Grensesnittet omfatter alle fremgangsmåtene ifølge Map
grensesnitt. Det er fordi det Map
er supergrensesnittet til ConcurrentMap
grensesnittet.
Foruten alle disse metodene, her er metodene som er spesifikke for ConcurrentMap
grensesnittet.
- putIfAbsent () - Setter inn den angitte nøkkelen / verdien på kartet hvis den angitte nøkkelen ikke allerede er knyttet til noen verdi.
- beregne () - Beregner en oppføring (nøkkel / verdikartlegging) for den angitte nøkkelen og dens tidligere tilordnede verdi.
- computeIfAbsent () - Beregner en verdi ved hjelp av den angitte funksjonen for den angitte nøkkelen hvis nøkkelen ikke allerede er tilordnet en verdi.
- computeIfPresent () - Beregner en ny oppføring (nøkkel / verdikartlegging ) for den angitte nøkkelen hvis nøkkelen allerede er tilordnet den angitte verdien.
- forEach () - Få tilgang til alle oppføringene på et kart og utfør de angitte handlingene.
- flette () - Slår sammen den nye spesifiserte verdien med den gamle verdien til den angitte nøkkelen hvis nøkkelen allerede er tilordnet til en bestemt verdi. Hvis nøkkelen ikke allerede er kartlagt, knytter metoden bare den angitte verdien til nøkkelen vår.
For å lære mer, besøk Java ConcurrentMap (offisiell Java-dokumentasjon).
Implementering av ConcurrentMap i 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); ) )
Produksjon
ConcurrentMap: (One = 1, Two = 2, Three = 3) Accessed Value: 1 Fjernet verdi: 2
For å lære mer om det ConcurrentHashMap
, besøk Java ConcurrentHashMap.