Cum să utilizați structura de date Java TreeMap

Cum să utilizați structura de date Java TreeMap

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





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

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.



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

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

mutați folderul utilizatorilor pe altă unitate

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ă:





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

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 .





de ce nu pot căuta în toate craigslist-urile
// View all items with an iterator 
for (Entry<Integer, String> customer : customers.entrySet()) {
System.out.println("Key: " + customer.getKey() + " Value: " + customer.getValue());
}

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

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

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

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

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.

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

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

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

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

cum se schimbă fundalul Google Chrome

TreeMap vs. Clasa Java HashMap

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