Clasa Java TreeMap stochează date într-o structură arborescentă folosind o interfață de hartă. Această clasă extinde clasa AbstractMap și, ca și clasa sa părinte, TreeMap are doi parametri de tip. Unul dintre parametrii săi de tip reprezintă cheile în TreeMap, în timp ce celălalt reprezintă valorile.

Structura de date TreeMap stochează perechi cheie-valoare și vă permite să efectuați operațiuni CRUD pe aceste date.

Cum se creează o hartă arboreală în Java

Clasa TreeMap are patru constructori pe care îi puteți folosi pentru a crea un nou obiect TreeMap. Constructorul implicit este cel mai popular dintre cele patru. Acest constructor nu ia argumente și generează o hartă arborescentă goală.

// Creați o nouă hartă arborescentă
Harta copacului clienti = nou Harta copacului();

Codul de mai sus generează o hartă arborescentă goală numită Clienți.

Popularea structurii de date TreeMap

The a pune() metoda adaugă un element la un obiect TreeMap. Este nevoie de două argumente - o cheie și valoarea acesteia. Puteți adăuga elemente pe harta arborescentă în orice ordine aleatorie, iar structura de date le va stoca în ordine crescătoare, în funcție de cheile lor.

instagram viewer

// Populați o hartă arborescentă
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”);

Codul de mai sus adaugă cinci clienți, în ordine aleatorie, pe harta arborescentă a clienților.

Vizualizarea elementelor dintr-o hartă arborescentă

Clasa TreeMap își stochează datele într-un obiect. Deci, pentru a vedea toate elementele dintr-o hartă arborescentă, puteți pur și simplu să tipăriți obiectul hărții arborelui pe consolă:

// Vizualizați toate elementele hărții arborescente ca obiect
System.out.println (clienți);

Codul de mai sus imprimă următoarea ieșire pe consolă:

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

Rețineți că obiectul de mai sus afișează elementele în ordine crescătoare. De asemenea, puteți vizualiza fiecare articol și tasta corespunzătoare folosind o buclă Java for.

// Vizualizați toate articolele cu un iterator
pentru (Intrare client: customers.entrySet()) {
System.out.println("Cheie: " + customer.getKey() + " Valoare: " + customer.getValue());
}

Codul de mai sus imprimă următoarea ieșire pe consolă:

Cheie: 101 Valoare: Kim Brown
Cheie: 102 Valoare: Mark Williams
Cheie: 103 Valoare: Jim Riley
Cheie: 104 Valoare: Phil Blair
Cheie: 105 Valoare: Jessica Jones

Actualizarea elementelor dintr-o hartă arborescentă

Clasa TreeMap vă permite să actualizați un element existent folosind a inlocui() metodă. Există două metode de înlocuire. Prima metodă ia o cheie existentă și noua valoare la care doriți să mapați cheia existentă.

// Înlocuiește valoarea existentă
customers.replace(101, „Kim Smith”);
System.out.println (clienți);

Codul de mai sus tipărește următorul obiect în consolă:

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

După cum puteți vedea Kim Brown este acum Kim Smith. A doua metodă replace() preia o cheie existentă, valoarea curentă a cheii și noua valoare pe care doriți să o mapați la cheie.

// Înlocuiește valoarea existentă
customers.replace(103, „Jim Riley”, „Michelle Noah”);
System.out.println (clienți);

Codul de mai sus tipărește următorul obiect în consolă:

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

În obiectul de mai sus Michelle Noah înlocuiește Jim Riley.

Ștergerea elementelor din TreeMap

Dacă doriți să eliminați un singur element din harta arborescentă, aplicația elimina() metoda este singura ta opțiune. Preia cheia asociată cu elementul pe care doriți să-l eliminați și returnează valoarea ștearsă.

// Eliminați un articol
customers.remove(104);
System.out.println (clienți);

Rularea codului de mai sus tipărește următorul obiect pe consolă:

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

Acest Clasa Java are de asemenea o clar() metodă care vă permite să ștergeți toate elementele din harta arborescentă.

Harta copacului vs. clasa HashMap Java

TreeMap și HashMap sunt două dintre cele mai populare clase de hărți Java. Ambele extind clasa AbstractMap. Această relație oferă claselor TreeMap și HashMap acces la multe dintre aceleași funcții.

Cu toate acestea, există unele diferențe demne de remarcat între aceste două clase de hărți. TreeMap folosește o implementare arbore roșu-negru a interfeței Map, în timp ce HashMap folosește un tabel hash. HashMap vă permite să stocați o singură cheie nulă, în timp ce TreeMap nu. În cele din urmă, un HashMap este mai rapid decât un TreeMap. Viteza algoritmică a primei este O(1), în timp ce cea din urmă este O(log (n)).