Hur man använder Java TreeMap-datastrukturen

Hur man använder Java TreeMap-datastrukturen

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.





dejtingsajter på nätet gratis för tonåringar

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

TreeMap-klassen 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.





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

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.



// 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");

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:





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

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 .





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

Koden ovan skriver ut följande utdata till konsolen:

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

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.

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

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.

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

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.

konvertera bild till vektor illustratör cc
// Remove an item 
customers.remove(104);
System.out.println(customers);

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.

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)).