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.
// Vytvorenie novej stromovej mapy
Stromová mapa zákazníci = Nový Stromová mapa();
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.
// Vyplňte stromovú mapu
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:
// Zobraziť všetky položky stromovej mapy ako objekt
System.out.println (zákazníci);
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.
// Zobrazenie všetkých položiek s iterátorom
pre (Vstup customer: customers.entrySet()) {
System.out.println("Kľúč: " + customer.getKey() + " Hodnota: " + customer.getValue());
}
Vyššie uvedený kód vypíše do konzoly nasledujúci výstup:
Kľúč: 101 Hodnota: Kim Brown
Kľúč: 102 Hodnota: Mark Williams
Kľúč: 103 Hodnota: Jim Riley
Kľúč: 104 Hodnota: Phil Blair
Kľúč: Hodnota 105: 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ľúč.
// Nahradenie existujúcej hodnoty
customers.replace(101"Kim Smith");
System.out.println (zákazníci);
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ť.
// Nahradenie existujúcej hodnoty
customers.replace(103"Jim Riley", "Michelle Noah");
System.out.println (zákazníci);
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.
// Odstránenie položky
customers.remove(104);
System.out.println (zákazníci);
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 HashMap Java
TreeMap a HashMap sú dve z najpopulárnejších tried Java máp. Obaja rozširujú triedu AbstractMap. Tento vzťah dáva triedam TreeMap a HashMap prístup k mnohým rovnakým funkciám.
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), kým druhého je O(log (n)).