Java ConcurrentMap-Schnittstelle
Java ConcurrentMap-Schnittstelle
In diesem Tutorial lernen wir die Java ConcurrentMap-Schnittstelle und ihre Methoden kennen.
Der ConcurrentMap
-Schnittstelle des Java Collections Framework bietet eine Thread-sichere Zuordnung. Das heißt, mehrere Threads können gleichzeitig auf die Map zugreifen, ohne die Konsistenz der Einträge in einer Map zu beeinträchtigen.
ConcurrentMap
wird als synchronisierte Karte bezeichnet.
Es erweitert die Kartenschnittstelle.
Klasse, die ConcurrentMap implementiert
Seit ConcurrentMap
eine Schnittstelle ist, können wir daraus keine Objekte erstellen.
Um die Funktionalitäten der ConcurrentMap
zu nutzen Schnittstelle müssen wir die Klasse ConcurrentHashMap
verwenden das es implementiert.
Wie verwende ich ConcurrentMap?
Um den ConcurrentMap
zu verwenden , müssen wir den java.util.concurrent.ConcurrentMap
importieren Paket zuerst. Sobald wir das Paket importiert haben, können wir wie folgt eine gleichzeitige Karte erstellen.
// ConcurrentMap implementation by ConcurrentHashMap
CocurrentMap<Key, Value> numbers = new ConcurrentHashMap<>();
Im obigen Code haben wir eine nebenläufige Zuordnung namens numbers erstellt .
Hier,
- Schlüssel - eine eindeutige Kennung, die verwendet wird, um jedes Element (Wert) in einer Zuordnung zuzuordnen
- Wert - Elemente, die durch Schlüssel in einer Karte verknüpft sind
Methoden von ConcurrentMap
Die ConcurrentMap
Schnittstelle enthält alle Methoden des Map
Schnittstelle. Es liegt an Map
ist die Superschnittstelle des ConcurrentMap
Schnittstelle.
Neben all diesen Methoden sind hier die Methoden, die für ConcurrentMap
spezifisch sind Schnittstelle.
- putIfAbsent() - Fügt den angegebenen Schlüssel/Wert in die Map 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 unter Verwendung der angegebenen Funktion für den angegebenen Schlüssel, wenn dem Schlüssel noch kein Wert zugeordnet ist.
- computeIfPresent() - Berechnet einen neuen Eintrag (Schlüssel/Wert-Zuordnung) für den angegebenen Schlüssel, wenn der Schlüssel bereits mit dem angegebenen Wert zugeordnet ist.
- forEach() - Greifen Sie auf alle Einträge einer Karte zu und führen Sie die angegebenen Aktionen aus.
- zusammenführen() - 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 einfach den angegebenen Wert unserem Schlüssel zu.
Um mehr zu erfahren, besuchen Sie 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<String, Integer> 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: {One=1, Two=2, Three=3} Accessed Value: 1 Removed Value: 2
Um mehr über ConcurrentHashMap
zu erfahren , besuchen Sie Java ConcurrentHashMap.
Java