Um eine synchronisierte Karte von einer TreeMap in Java zu erhalten, können wir die integrierte Methode „synchronizedMap()“ der Collection-Schnittstelle verwenden. Hier ist TreeMap eine Klasse, die zur Implementierung der NavigableMap-Schnittstelle verwendet wird. Es speichert die Elemente der Karte in einer Baumstruktur. Es bietet eine effiziente Alternative zum Speichern von Schlüssel-Wert-Paaren in sortierter Reihenfolge. Standardmäßig ist TreeMap nicht synchronisiert. In diesem Artikel erklären wir anhand eines Beispielprogramms die Notwendigkeit der Synchronisation und deren praktische Umsetzung.
Treemap ist nicht Thread-sicher. Das heißt, wenn wir es in einer Multithread-Umgebung implementieren, können mehrere Threads ohne Koordination gleichzeitig darauf zugreifen und es ändern. Dies kann zu Dateninkonsistenzen und unerwartetem Verhalten von Elementen führen. Es kann auch Auswirkungen auf das Ergebnis der Operation haben.
Daher müssen wir synchronisiertMap() verwenden, um den Zugriff auf TreeMap-Elemente zu synchronisieren. Diese Methode erstellt einen Wrapper um die ursprüngliche TreeMap und sperrt sie, wenn ein Thread versucht, darauf zuzugreifen oder sie zu ändern.
synchronizedMap() ist eine statische Methode der Collections-Klasse, die eine Instanz der TreeMap-Sammlung als Parameter verwendet und daraus eine synchronisierte Map zurückgibt.
Collections.synchronizedMap(instanceOfTreeMap);
Hier ist „Collections“ eine Klasse der Collection-Schnittstelle.
Die allgemeine Syntax vonTreeMap lautet wie folgt -
TreeMap<TypeOfKey, TypeOfValue> nameOfMap = new TreeMap<>();
Importieren Sie zunächst das Paket „java.util“, um die TreeMap-Klasse zu aktivieren.
Dann erstellen Sie eine TreeMap, in der die Schlüssel vom Typ String und die Werte sind Integer-Typ.
Verwenden Sie die integrierte Methode „put()“, um einige Elemente in einer Sammlung zu speichern
Jetzt synchronisieren Sie diese Elemente und speichern Sie sie in einer Variablen vom Typ Map.
Zum Schluss drucken Sie die neue synchronisierte Karte aus und beenden Sie den Vorgang.
Das folgende Beispiel zeigt, wie synchronisiertMap() verwendet wird, um eine angegebene TreeMap zu synchronisieren.
< /h3>import java.util.*; public class Maps { public static void main(String[] args) { TreeMap<String, Integer> cart = new TreeMap<>(); // Adding elements in the cart map cart.put("Butter", 5); cart.put("Milk", 10); cart.put("Rice", 20); cart.put("Bread", 2); cart.put("Peanut", 2); // print synchronized map from TreeMap Map mapSynched = Collections.synchronizedMap(cart); System.out.println("Synchronized Map from TreeMap: " + mapSynched); } }
Synchronized Map from TreeMap: {Bread=2, Butter=5, Milk=10, Peanut=2, Rice=20}
Importieren Sie zunächst das Paket „java.util“, um die TreeMap-Klasse zu aktivieren.
Dann erstellen Sie eine TreeMap, in der die Schlüssel vom Typ String und die Werte vom Typ Integer sind
Verwenden Sie die integrierte Methode „put()“, um einige Elemente in einer Sammlung zu speichern
Jetzt verwenden Sie die synchronisierteMap()-Methode, um diese Elemente zu synchronisieren und in einer neuen Kartensammlung zu speichern.
Abschließend definieren Sie einen Synchronisierungsblock. Innerhalb dieses Blocks werden die Elemente mit der Methode „keySet()“ mithilfe einer for-each-Schleife gedruckt.
Im folgenden Beispiel verwenden wir die synchronisierteMap()-Methode und einen synchronisierten Block, um die angegebene TreeMap zu synchronisieren< /p>
import java.util.*; public class Maps { public static void main(String[] args) { TreeMap<String, Integer> cart = new TreeMap<>(); // Adding elements in the cart map cart.put("Butter", 5); cart.put("Milk", 10); cart.put("Rice", 20); cart.put("Bread", 2); cart.put("Peanut", 2); // creating new synchronized Map Map<String, Integer> mapSynched = Collections.synchronizedMap(cart); System.out.println("Synchronized Map from TreeMap: " ); // printing synchronized map from TreeMap synchronized (mapSynched) { for (String unKey : mapSynched.keySet()) { System.out.println("Item: " + unKey + ", Quantity: " + cart.get(unKey)); } } } }
Synchronized Map from TreeMap: Item: Bread, Quantity: 2 Item: Butter, Quantity: 5 Item: Milk, Quantity: 10 Item: Peanut, Quantity: 2 Item: Rice, Quantity: 20
Synchronisation ist der Prozess der Koordination und Gewährleistung der korrekten Kommunikation zwischen zwei oder mehr Aktivitäten. Da eine fehlende Synchronisierung von TreeMap zu Dateninkonsistenzen führen kann, müssen wir es synchronisieren. Die integrierte Methode „Collections.synchronizedMap()“ ist eine bequemere Möglichkeit, diese Aufgabe auszuführen.
Das obige ist der detaillierte Inhalt vonHolen Sie sich eine synchronisierte Karte von Java TreeMap. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!