So verwenden Sie die Java TreeMap-Datenstruktur

So verwenden Sie die Java TreeMap-Datenstruktur

Die Java-TreeMap-Klasse speichert Daten in einer Baumstruktur unter Verwendung einer Kartenschnittstelle. Diese Klasse erweitert die AbstractMap-Klasse, und wie ihre Elternklasse hat TreeMap zwei Typparameter. Einer seiner Typparameter stellt die Schlüssel in der TreeMap dar, während der andere die Werte darstellt.





Die TreeMap-Datenstruktur speichert Schlüssel-Wert-Paare und ermöglicht es Ihnen, CRUD-Operationen mit diesen Daten durchzuführen.





So erstellen Sie eine TreeMap in Java

Die TreeMap-Klasse verfügt über vier Konstruktoren, mit denen Sie ein neues TreeMap-Objekt erstellen können. Der Standardkonstruktor ist der beliebteste der vier. Dieser Konstruktor akzeptiert keine Argumente und generiert eine leere Baumkarte.





// Create a new tree map 
TreeMap<Integer,String> customers = new TreeMap<Integer,String>();

Der obige Code generiert eine leere Baumkarte namens Kunden .

Füllen der TreeMap-Datenstruktur

Das stellen() -Methode fügt einem TreeMap-Objekt ein Element hinzu. Es benötigt zwei Argumente – einen Schlüssel und seinen Wert. Sie können der Baumkarte Elemente in beliebiger Reihenfolge hinzufügen, und die Datenstruktur speichert sie in aufsteigender Reihenfolge entsprechend ihren Schlüsseln.



// Populate a tree map 
customers.put(105, "Jessica Jones");
customers.put(102, "Mark Williams");
customers.put(104, "Phil Blair");
customers.put(101, "Kim Brown");
customers.put(103, "Jim Riley");

Der obige Code fügt der Kundenstrukturkarte fünf Kunden in zufälliger Reihenfolge hinzu.

warum steht in meiner nachricht nicht zugestellt

Anzeigen von Elementen in einer TreeMap

Die TreeMap-Klasse speichert ihre Daten in einem Objekt. Um also alle Elemente in einer Baumkarte anzuzeigen, können Sie einfach das Baumkartenobjekt auf der Konsole drucken:





// View all tree map items as an object 
System.out.println(customers);

Der obige Code gibt die folgende Ausgabe an die Konsole aus:

{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

Beachten Sie, dass das obige Objekt die Elemente in aufsteigender Reihenfolge anzeigt. Sie können auch jedes Element und seinen entsprechenden Schlüssel mit anzeigen eine Java-for-Schleife .





// View all items with an iterator 
for (Entry<Integer, String> customer : customers.entrySet()) {
System.out.println("Key: " + customer.getKey() + " Value: " + customer.getValue());
}

Der obige Code gibt die folgende Ausgabe an die Konsole aus:

Key: 101 Value: Kim Brown 
Key: 102 Value: Mark Williams
Key: 103 Value: Jim Riley
Key: 104 Value: Phil Blair
Key: 105 Value: Jessica Jones

Aktualisieren von Elementen in einer TreeMap

Mit der TreeMap-Klasse können Sie ein vorhandenes Element mithilfe von aktualisieren ersetzen() Methode. Es gibt zwei Ersetzungsmethoden. Die erste Methode nimmt einen vorhandenen Schlüssel und den neuen Wert, dem Sie den vorhandenen Schlüssel zuordnen möchten.

// Replace existing value 
customers.replace(101,"Kim Smith");
System.out.println(customers);

Der obige Code gibt das folgende Objekt in der Konsole aus:

{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

Wie du sehen kannst Kim Braun ist jetzt Kim Smith . Die zweite Methode replace() nimmt einen vorhandenen Schlüssel, den aktuellen Wert des Schlüssels und den neuen Wert, den Sie dem Schlüssel zuordnen möchten.

// Replace existing value 
customers.replace(103,"Jim Riley", "Michelle Noah");
System.out.println(customers);

Der obige Code gibt das folgende Objekt in der Konsole aus:

{101=Kim Brown, 102=Mark Williams, 103=Michelle Noah, 104=Phil Blair, 105=Jessica Jones}

Im obigen Objekt Michelle Noah ersetzt Jim Riley .

Elemente aus der TreeMap löschen

Wenn Sie ein einzelnes Element aus der Baumstruktur entfernen möchten, wird die Löschen() Methode ist Ihre einzige Option. Es nimmt den Schlüssel, der dem Element zugeordnet ist, das Sie entfernen möchten, und gibt den gelöschten Wert zurück.

// Remove an item 
customers.remove(104);
System.out.println(customers);

Wenn Sie den obigen Code ausführen, wird das folgende Objekt auf der Konsole ausgegeben:

{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}

Dies Java-Klasse hat auch eine klar() Methode, mit der Sie alle Elemente in der Baumstruktur löschen können.

Die TreeMap vs. die HashMap-Java-Klasse

TreeMap und HashMap sind zwei der beliebtesten Java-Map-Klassen. Beide erweitern die AbstractMap-Klasse. Diese Beziehung gibt den Klassen TreeMap und HashMap Zugriff auf viele der gleichen Funktionen.

Es gibt jedoch einige bemerkenswerte Unterschiede zwischen diesen beiden Kartenklassen. Die TreeMap verwendet eine Rot-Schwarz-Baum-Implementierung der Map-Schnittstelle, während die HashMap eine Hash-Tabelle verwendet. HashMap ermöglicht es Ihnen, einen einzelnen Nullschlüssel zu speichern, während TreeMap dies nicht tut. Schließlich ist eine HashMap schneller als eine TreeMap. Die algorithmische Geschwindigkeit des ersteren ist O(1), während die des letzteren O(log(n)) ist.

Wie erstellt man einen benutzerdefinierten Snapchat-Filter?