Kako koristiti strukturu podataka Java TreeMap

Kako koristiti strukturu podataka Java TreeMap

Klasa Java TreeMap pohranjuje podatke u strukturu stabla koristeći sučelje karte. Ova klasa proširuje klasu AbstractMap i, poput roditeljske klase, TreeMap ima dva parametra tipa. Jedan od njegovih parametara tipa predstavlja ključeve u TreeMap-u, dok drugi predstavlja vrijednosti.





Struktura podataka TreeMap pohranjuje parove ključ-vrijednost i omogućuje vam izvođenje CRUD operacija na tim podacima.





Kako stvoriti TreeMap u Javi

Klasa TreeMap ima četiri konstruktora koje možete koristiti za stvaranje novog objekta TreeMap. Zadani konstruktor je najpopularniji od četiri. Ovaj konstruktor ne uzima argumente i generira praznu mapu stabla.





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

Gornji kod generira praznu mapu stabla pod nazivom kupaca .

Popunjavanje strukture podataka TreeMap

The staviti() metoda dodaje stavku objektu TreeMap. Potrebna su dva argumenta — ključ i njegova vrijednost. Možete dodati stavke na kartu stabla bilo kojim nasumičnim redoslijedom, a struktura podataka će ih pohraniti uzlaznim redoslijedom, prema njihovim ključevima.



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

Gornji kod dodaje pet kupaca, nasumičnim redoslijedom, na kartu stabla kupaca.

Pregledavanje stavki u TreeMap-u

Klasa TreeMap pohranjuje svoje podatke u objekt. Dakle, da vidite sve stavke u karti stabla, možete jednostavno ispisati objekt karte stabla na konzoli:





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

Gornji kod ispisuje sljedeći izlaz na konzolu:

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

Imajte na umu da gornji objekt prikazuje stavke uzlaznim redoslijedom. Također možete vidjeti svaku stavku i njen odgovarajući ključ koristeći Java for petlja .





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

Gornji kod ispisuje sljedeći izlaz na konzolu:

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

Ažuriranje stavki u TreeMap-u

Klasa TreeMap omogućuje ažuriranje postojeće stavke pomoću zamijeniti() metoda. Postoje dvije metode zamjene. Prva metoda uzima postojeći ključ i novu vrijednost na koju želite preslikati postojeći ključ.

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

Gornji kod ispisuje sljedeći objekt u konzoli:

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

Kao što vidiš Kim Brown je sad Kim Smith . Druga metoda replace() uzima postojeći ključ, trenutnu vrijednost ključa i novu vrijednost koju želite preslikati na ključ.

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

Gornji kod ispisuje sljedeći objekt u konzoli:

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

U objektu iznad Michelle Noah zamjenjuje Jim Riley .

Brisanje stavki s TreeMapa

Ako želite ukloniti jednu stavku s karte stabla, ukloniti() metoda je vaša jedina opcija. Uzima ključ povezan sa stavkom koju želite ukloniti i vraća izbrisanu vrijednost.

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

Pokretanje gornjeg koda ispisuje sljedeći objekt na konzolu:

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

Ovaj Java klasa također ima a čisto() metoda koja vam omogućuje brisanje svih stavki na karti stabla.

TreeMap naspram HashMap Java klase

TreeMap i HashMap dvije su popularnije klase Java mapa. Oba proširuju klasu AbstractMap. Ovaj odnos daje klasama TreeMap i HashMap pristup velikom broju istih funkcija.

Međutim, postoje neke značajne razlike između ove dvije klase karata. TreeMap koristi implementaciju crveno-crnog stabla sučelja karte, dok HashMap koristi hash tablicu. HashMap vam omogućuje pohranu jednog null ključa, dok TreeMap to ne čini. Konačno, HashMap je brži od TreeMapa. Algoritamska brzina prvog je O(1), dok je algoritamska brzina drugog O(log(n)).

xbox one kontroler treperi pa se isključuje