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