Razred Java TreeMap shranjuje podatke v drevesni strukturi z uporabo vmesnika zemljevida. Ta razred razširja razred AbstractMap in tako kot njegov nadrejeni razred ima tudi TreeMap dva parametra tipa. Eden od njegovih tipskih parametrov predstavlja ključe v TreeMap, drugi pa vrednosti.

Podatkovna struktura TreeMap shranjuje pare ključ-vrednost in vam omogoča izvajanje operacij CRUD na teh podatkih.

Kako ustvariti TreeMap v Javi

Razred TreeMap ima štiri konstruktorje, ki jih lahko uporabite za ustvarjanje novega predmeta TreeMap. Privzeti konstruktor je najbolj priljubljen od štirih. Ta konstruktor ne sprejema argumentov in ustvari prazen drevesni zemljevid.

// Ustvari nov drevesni zemljevid
TreeMap stranke = novo TreeMap();

Zgornja koda ustvari prazen drevesni zemljevid, imenovan stranke.

Polnjenje podatkovne strukture TreeMap

The daj() metoda doda element v objekt TreeMap. Potrebuje dva argumenta – ključ in njegovo vrednost. Elemente lahko dodate na drevesni zemljevid v poljubnem naključnem vrstnem redu in podatkovna struktura jih bo shranila v naraščajočem vrstnem redu glede na njihove ključe.

instagram viewer

// Napolni drevesni zemljevid
kupci.put(105, "Jessica Jones");
kupci.put(102, "Mark Williams");
kupci.put(104, "Phil Blair");
kupci.put(101, "Kim Brown");
kupci.put(103, "Jim Riley");

Zgornja koda doda pet strank v naključnem vrstnem redu na drevesni zemljevid strank.

Ogled elementov v drevesnem zemljevidu

Razred TreeMap shrani svoje podatke v objekt. Torej, če si želite ogledati vse elemente v drevesnem zemljevidu, lahko preprosto natisnete predmet drevesnega zemljevida na konzolo:

// Oglejte si vse elemente drevesnega zemljevida kot objekt
System.out.println (stranke);

Zgornja koda natisne naslednji izhod v konzolo:

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

Upoštevajte, da zgornji predmet prikazuje elemente v naraščajočem vrstnem redu. Vsak element in njegov ustrezni ključ si lahko ogledate tudi z uporabo zanka Java for.

// Ogled vseh elementov z iteratorjem
za (Vstop kupec: customers.entrySet()) {
System.out.println("Ključ: " + customer.getKey() + " Vrednost: " + customer.getValue());
}

Zgornja koda natisne naslednji izhod v konzolo:

Ključ: 101 Vrednost: Kim Brown
Ključ: 102 Vrednost: Mark Williams
Ključ: 103 Vrednost: Jim Riley
Ključ: 104 Vrednost: Phil Blair
Ključ: 105 Vrednost: Jessica Jones

Posodabljanje elementov v TreeMap

Razred TreeMap vam omogoča posodobitev obstoječega elementa z uporabo zamenjati() metoda. Obstajata dva načina zamenjave. Prva metoda vzame obstoječi ključ in novo vrednost, v katero želite preslikati obstoječi ključ.

// Zamenjaj obstoječo vrednost
stranke.zamenjaj(101, "Kim Smith");
System.out.println (stranke);

Zgornja koda natisne naslednji objekt v konzoli:

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

Kot vidite Kim Brown je sedaj Kim Smith. Druga metoda replace() vzame obstoječi ključ, trenutno vrednost ključa in novo vrednost, ki jo želite preslikati v ključ.

// Zamenjaj obstoječo vrednost
stranke.zamenjaj(103, "Jim Riley", "Michelle Noah");
System.out.println (stranke);

Zgornja koda natisne naslednji objekt v konzoli:

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

V objektu zgoraj Michelle Noah nadomešča Jim Riley.

Brisanje elementov iz drevesnega zemljevida

Če želite z drevesnega zemljevida odstraniti en element, se Odstrani() metoda je vaša edina možnost. Vzame ključ, povezan z elementom, ki ga želite odstraniti, in vrne izbrisano vrednost.

// Odstrani element
stranke.odstrani(104);
System.out.println (stranke);

Zagon zgornje kode natisne naslednji objekt na konzolo:

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

to Java razred ima tudi a počisti() metoda, ki omogoča brisanje vseh elementov v drevesnem zemljevidu.

TreeMap vs. HashMap Java Class

TreeMap in HashMap sta dva bolj priljubljena razreda zemljevidov Java. Oba razširjata razred AbstractMap. To razmerje daje razredoma TreeMap in HashMap dostop do veliko istih funkcij.

Vendar pa obstaja nekaj omembe vrednih razlik med tema dvema razredoma zemljevidov. TreeMap uporablja implementacijo rdeče-črnega drevesa vmesnika Map, medtem ko HashMap uporablja zgoščevalno tabelo. HashMap vam omogoča shranjevanje enega samega ničelnega ključa, medtem ko TreeMap tega ne omogoča. Končno je HashMap hitrejši od TreeMap. Algoritemska hitrost prvega je O(1), medtem ko je algoritemska hitrost drugega O(log (n)).