I den här handledningen lär vi oss om Java ConcurrentMap-gränssnittet och dess metoder.
Det ConcurrentMap
gränssnitt samlingar ramen för Java ger en trådsäker kartan. Det vill säga att flera trådar kan komma åt kartan samtidigt utan att det påverkar konsistensen för poster i en karta.
ConcurrentMap
är känd som en synkroniserad karta.
Det utökar kartgränssnittet.
Klass som implementerar ConcurrentMap
Eftersom det ConcurrentMap
är ett gränssnitt kan vi inte skapa objekt från det.
För att kunna använda funktionerna i ConcurrentMap
gränssnittet måste vi använda klassen ConcurrentHashMap
som implementerar det.
Hur använder jag ConcurrentMap?
För att kunna använda ConcurrentMap
måste vi först importera java.util.concurrent.ConcurrentMap
paketet. När vi väl har importerat paketet, så här kan vi skapa en samtidig karta.
// ConcurrentMap implementation by ConcurrentHashMap CocurrentMap numbers = new ConcurrentHashMap();
I koden ovan har vi skapat en samtidig karta med namnen.
Här,
- Nyckel - en unik identifierare som används för att associera varje element (värde) på en karta
- Värde - element som är associerade med nycklar på en karta
Metoder för ConcurrentMap
I ConcurrentMap
gränssnitt innefattar alla metoder i Map
gränssnittet. Det beror Map
på att gränssnittets ConcurrentMap
supergränssnitt är.
Förutom alla dessa metoder, här är de metoder som är specifika för ConcurrentMap
gränssnittet.
- putIfAbsent () - Infogar den angivna nyckeln / värdet på kartan om den angivna nyckeln inte redan är associerad med något värde.
- beräkna () - Beräknar en post (nyckel / värdemappning) för den angivna nyckeln och dess tidigare mappade värde.
- computeIfAbsent () - Beräknar ett värde med den angivna funktionen för den angivna nyckeln om nyckeln inte redan är mappad med något värde.
- computeIfPresent () - Beräknar en ny post (nyckel / värdemappning) för den angivna nyckeln om nyckeln redan är mappad med det angivna värdet.
- forEach () - Få åtkomst till alla poster på en karta och utför de angivna åtgärderna.
- merge () - Slår samman det nya angivna värdet med det gamla värdet för den angivna nyckeln om nyckeln redan är mappad till ett visst värde. Om nyckeln inte redan är mappad kopplar metoden helt enkelt det angivna värdet till vår nyckel.
För att lära dig mer, besök Java ConcurrentMap (officiell Java-dokumentation).
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); ) )
Produktion
ConcurrentMap: (One = 1, Two = 2, Three = 3) Åtkomstvärde: 1 borttaget värde: 2
För att lära dig mer om ConcurrentHashMap
, besök Java ConcurrentHashMap.