Kako uporabljati podatkovno strukturo Java TreeMap

Kako uporabljati podatkovno strukturo Java TreeMap

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





razlogi, zakaj so socialni mediji slabi
// Create a new tree map 
TreeMap<Integer,String> customers = new TreeMap<Integer,String>();

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.



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

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 želite videti vse elemente v drevesnem zemljevidu, lahko preprosto natisnete predmet drevesnega zemljevida na konzolo:





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

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 .





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

Zgornja koda natisne naslednji izhod v konzolo:

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

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

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

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

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

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.

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

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