In diesem Tutorial lernen wir die Java ConcurrentMap-Oberfläche und ihre Methoden kennen.
Die ConcurrentMap
Schnittstelle des Java-Sammlungsframeworks bietet eine thread-sichere Zuordnung. Das heißt, mehrere Threads können gleichzeitig auf die Karte zugreifen, ohne die Konsistenz der Einträge in einer Karte zu beeinträchtigen.
ConcurrentMap
ist als synchronisierte Karte bekannt.
Es erweitert die Kartenschnittstelle.
Klasse, die ConcurrentMap implementiert
Da ConcurrentMap
es sich um eine Schnittstelle handelt, können wir daraus keine Objekte erstellen.
Um die Funktionen der ConcurrentMap
Schnittstelle nutzen zu können, müssen wir die Klasse verwenden ConcurrentHashMap
, die sie implementiert.
Wie verwende ich ConcurrentMap?
Um das zu verwenden ConcurrentMap
, müssen wir java.util.concurrent.ConcurrentMap
zuerst das Paket importieren . Sobald wir das Paket importiert haben, können wir wie folgt eine gleichzeitige Karte erstellen.
// ConcurrentMap implementation by ConcurrentHashMap CocurrentMap numbers = new ConcurrentHashMap();
Im obigen Code haben wir eine gleichzeitige Karte mit dem Namen "Nummern" erstellt.
Hier,
- Schlüssel - eine eindeutige Kennung, mit der jedes Element (Wert) in einer Karte zugeordnet wird
- Wert - Elemente, die durch Schlüssel in einer Karte verknüpft sind
Methoden von ConcurrentMap
Die ConcurrentMap
Schnittstelle enthält alle Methoden der Map
Schnittstelle. Es ist, weil Map
ist die Super-Schnittstelle der ConcurrentMap
Schnittstelle.
Neben all diesen Methoden sind hier die für die ConcurrentMap
Schnittstelle spezifischen Methoden aufgeführt .
- putIfAbsent () - Fügt den angegebenen Schlüssel / Wert in die Zuordnung ein, wenn der angegebene Schlüssel noch keinem Wert zugeordnet ist.
- compute () - Berechnet einen Eintrag (Schlüssel / Wert-Zuordnung) für den angegebenen Schlüssel und seinen zuvor zugeordneten Wert.
- computeIfAbsent () - Berechnet einen Wert mit der angegebenen Funktion für den angegebenen Schlüssel, wenn der Schlüssel noch keinem Wert zugeordnet ist.
- computeIfPresent () - Berechnet einen neuen Eintrag (Schlüssel- / Wertzuordnung) für den angegebenen Schlüssel, wenn der Schlüssel bereits dem angegebenen Wert zugeordnet ist.
- forEach () - Greifen Sie auf alle Einträge einer Karte zu und führen Sie die angegebenen Aktionen aus.
- merge () - Führt den neuen angegebenen Wert mit dem alten Wert des angegebenen Schlüssels zusammen, wenn der Schlüssel bereits einem bestimmten Wert zugeordnet ist. Wenn der Schlüssel noch nicht zugeordnet ist, ordnet die Methode den angegebenen Wert einfach unserem Schlüssel zu.
Weitere Informationen finden Sie unter Java ConcurrentMap (offizielle Java-Dokumentation).
Implementierung von ConcurrentMap in 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); ) )
Ausgabe
ConcurrentMap: (Eins = 1, Zwei = 2, Drei = 3) Zugriffswert: 1 Entfernter Wert: 2
Weitere Informationen ConcurrentHashMap
finden Sie unter Java ConcurrentHashMap.