Ako používať dátovú štruktúru Java TreeMap

Ako používať dátovú štruktúru Java TreeMap

Trieda Java TreeMap ukladá údaje do stromovej štruktúry pomocou mapového rozhrania. Táto trieda rozširuje triedu AbstractMap a podobne ako jej rodičovská trieda, aj TreeMap má dva parametre typu. Jeden z jeho parametrov typu predstavuje kľúče v stromovej mape, zatiaľ čo druhý predstavuje hodnoty.





Štruktúra údajov TreeMap ukladá páry kľúč-hodnota a umožňuje vám s týmito údajmi vykonávať operácie CRUD.





Ako vytvoriť stromovú mapu v Jave

Trieda TreeMap má štyri konštruktory, ktoré môžete použiť na vytvorenie nového objektu TreeMap. Predvolený konštruktor je najobľúbenejší zo štyroch. Tento konštruktor neberie žiadne argumenty a generuje prázdnu stromovú mapu.





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

Vyššie uvedený kód generuje prázdnu stromovú mapu s názvom zákazníkov .

Vyplnenie dátovej štruktúry TreeMap

The dať () metóda pridá položku do objektu TreeMap. Vyžaduje dva argumenty – kľúč a jeho hodnotu. Položky do stromovej mapy môžete pridávať v ľubovoľnom náhodnom poradí a dátová štruktúra ich bude ukladať vo vzostupnom poradí podľa ich kľúčov.



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

Vyššie uvedený kód pridá päť zákazníkov v náhodnom poradí do stromovej mapy zákazníkov.

Zobrazenie položiek na stromovej mape

Trieda TreeMap ukladá svoje údaje do objektu. Ak chcete vidieť všetky položky v stromovej mape, môžete jednoducho vytlačiť objekt stromovej mapy do konzoly:





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

Vyššie uvedený kód vypíše do konzoly nasledujúci výstup:

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

Všimnite si, že objekt vyššie zobrazuje položky vo vzostupnom poradí. Môžete tiež zobraziť každú položku a jej zodpovedajúci kľúč pomocou slučka Java for .





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

Vyššie uvedený kód vypíše do konzoly nasledujúci výstup:

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

Aktualizácia položiek v stromovej mape

Trieda TreeMap vám umožňuje aktualizovať existujúcu položku pomocou nahradiť () metóda. Existujú dva spôsoby výmeny. Prvá metóda preberá existujúci kľúč a novú hodnotu, na ktorú chcete priradiť existujúci kľúč.

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

Vyššie uvedený kód vytlačí v konzole nasledujúci objekt:

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

Ako môžeš vidieť Kim Brown je teraz Kim Smith . Druhá metóda replace() berie existujúci kľúč, aktuálnu hodnotu kľúča a novú hodnotu, ktorú chcete na kľúč namapovať.

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

Vyššie uvedený kód vytlačí v konzole nasledujúci objekt:

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

V objekte vyššie Michelle Noah nahrádza Jim Riley .

Odstránenie položiek zo stromovej mapy

Ak chcete odstrániť jednu položku zo stromovej mapy, odstrániť () metóda je vaša jediná možnosť. Vezme kľúč spojený s položkou, ktorú chcete odstrániť, a vráti vymazanú hodnotu.

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

Spustenie vyššie uvedeného kódu vytlačí do konzoly nasledujúci objekt:

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

Toto Trieda Java má tiež a jasný() metóda, ktorá umožňuje vymazať všetky položky v stromovej mape.

TreeMap vs. trieda Java HashMap

TreeMap a HashMap sú dve z najpopulárnejších tried Java máp. Obaja rozširujú triedu AbstractMap. Tento vzťah poskytuje triedam TreeMap a HashMap prístup k mnohým rovnakým funkciám.

zistite, kto vás zablokoval na facebooku

Medzi týmito dvoma triedami máp je však niekoľko pozoruhodných rozdielov. TreeMap používa červeno-čiernu implementáciu rozhrania mapy, zatiaľ čo HashMap používa hašovaciu tabuľku. HashMap vám umožňuje uložiť jeden nulový kľúč, zatiaľ čo TreeMap nie. Nakoniec, HashMap je rýchlejšia ako TreeMap. Algoritmická rýchlosť prvého je O(1), zatiaľ čo druhého je O(log(n)).