Java TreeMap-klassen lagrar data i en trädstruktur med hjälp av ett kartgränssnitt. Den här klassen utökar klassen AbstractMap och, precis som sin överordnade klass, har TreeMap två typparametrar. En av dess typparametrar representerar nycklarna i TreeMap, medan den andra representerar värdena.

TreeMap-datastrukturen lagrar nyckel-värdepar och låter dig utföra CRUD-operationer på dessa data.

Hur man skapar en trädkarta i Java

Klassen TreeMap har fyra konstruktorer som du kan använda för att skapa ett nytt TreeMap-objekt. Standardkonstruktören är den mest populära av de fyra. Denna konstruktor tar inga argument och genererar en tom trädkarta.

// Skapa en ny trädkarta
Trädkarta kunder = ny Trädkarta();

Koden ovan genererar en tom trädkarta som kallas kunder.

Fylla i TreeMap-datastrukturen

De sätta() metod lägger till ett objekt till ett TreeMap-objekt. Det krävs två argument – ​​en nyckel och dess värde. Du kan lägga till objekt till trädkartan i valfri slumpmässig ordning och datastrukturen lagrar dem i stigande ordning, enligt deras nycklar.

// Fyll i en trädkarta
kunder.put(105, "Jessica Jones");
kunder.put(102, "Mark Williams");
kunder.put(104, "Phil Blair");
kunder.put(101, "Kim Brown");
kunder.put(103, "Jim Riley");

Koden ovan lägger till fem kunder, i slumpmässig ordning, till kundernas trädkarta.

Visa objekt i en trädkarta

TreeMap-klassen lagrar sina data i ett objekt. Så för att se alla objekt i en trädkarta kan du helt enkelt skriva ut trädkartaobjektet till konsolen:

// Visa alla trädkartobjekt som ett objekt
System.out.println (kunder);

Koden ovan skriver ut följande utdata till konsolen:

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

Observera att objektet ovan visar objekten i stigande ordning. Du kan också se varje objekt och dess motsvarande nyckel med hjälp av en Java för loop.

// Visa alla objekt med en iterator
för (Inträde kund: kunder.entrySet()) {
System.out.println("Key: " + customer.getKey() + " Value: " + customer.getValue());
}

Koden ovan skriver ut följande utdata till konsolen:

Nyckel: 101 Värde: Kim Brown
Nyckel: 102 Värde: Mark Williams
Nyckel: 103 Värde: Jim Riley
Nyckel: 104 Värde: Phil Blair
Nyckel: 105 Värde: Jessica Jones

Uppdatera objekt i en trädkarta

Klassen TreeMap låter dig uppdatera ett befintligt objekt med hjälp av byta ut() metod. Det finns två ersättningsmetoder. Den första metoden tar en befintlig nyckel och det nya värdet du vill mappa den befintliga nyckeln till.

// Ersätt befintligt värde
kunder.ersätt(101"Kim Smith");
System.out.println (kunder);

Koden ovan skriver ut följande objekt i konsolen:

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

Som du kan se Kim Brown är nu Kim Smith. Den andra metoden replace() tar en befintlig nyckel, nyckelns nuvarande värde och det nya värdet som du vill mappa till nyckeln.

// Ersätt befintligt värde
kunder.ersätt(103"Jim Riley", "Michelle Noah");
System.out.println (kunder);

Koden ovan skriver ut följande objekt i konsolen:

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

I objektet ovan Michelle Noah ersätter Jim Riley.

Ta bort objekt från trädkartan

Om du vill ta bort ett enstaka objekt från trädkartan, ta bort() metoden är ditt enda alternativ. Den tar nyckeln som är kopplad till objektet du vill ta bort och returnerar det raderade värdet.

// Ta bort ett objekt
kunder.ta bort(104);
System.out.println (kunder);

Genom att köra koden ovan skrivs följande objekt ut till konsolen:

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

Detta Java klass har också en klar() metod som låter dig ta bort alla objekt i trädkartan.

The TreeMap vs. HashMap Java Class

TreeMap och HashMap är två av de mer populära Java-kartklasserna. De utökar båda klassen AbstractMap. Detta förhållande ger TreeMap- och HashMap-klasserna tillgång till många av samma funktioner.

Det finns dock några anmärkningsvärda skillnader mellan dessa två kartklasser. TreeMap använder en röd-svart trädimplementering av kartgränssnittet, medan HashMap använder en hashtabell. HashMap låter dig lagra en enda nollnyckel, medan TreeMap inte gör det. Slutligen är en HashMap snabbare än en TreeMap. Den förstnämndes algoritmiska hastighet är O(1) medan den senares är O(log (n)).