Razlika između HashMap-a i TreeMap-a na Javi
Sadržaj
HashMap i TreeMap su klase Map i obje implementiraju sučelje Map. Map je objekt koji pohranjuje parove ključ-vrijednost, gdje je svaki ključ jedinstven, ali mogu postojati duplicirane vrijednosti. HashMap klasa koristi hash tablicu kao strukturu podataka. TreeMap koristi crveno-crno stablo kao strukturu podataka. Glavna razlika između HashMap-a i Treemapa je ta HashMap ne čuva redoslijed umetanja dok, stablu ne.
Pa započnimo našu raspravu o razlikama između HashMap-a i TreeMap-a uz pomoć dijagrama usporedbe prikazanog dolje.
- Usporedni grafikon
- definicija
- Ključne razlike
- Zaključak
Usporedni grafikon
Osnove za usporedbu | HashMap | stablu |
---|---|---|
Osnovni, temeljni | HashMap ne održava redoslijed umetanja. | TreeMap održava redoslijed umetanja. |
podatkovna struktura | HashMap koristi Hash Table kao temeljnu strukturu podataka. | TreeMap koristi crveno-crno drvo kao temeljnu strukturu podataka. |
Nulte ključeve i vrijednosti | HashMap omogućava Null ključ jednom oglasa Null vrijednost bilo koji broj vremena. | TreeMap ne dopušta Null Key, ali dopušta Null Vrijednosti bilo koji broj vremena. |
Proširenja i implementacije | HashMap proširuje klasu AbstractMap i implementira Map sučelje. | TreeMap proširuje klasu AbstractMap i implementira SortedMap i NavigableMap sučelje. |
Izvođenje | HashMap djeluje brže. | TreeMap u odnosu na HashMap djeluje sporije. |
Definicija HashMap-a
HashMap je klasa Map. Koristi hash table, kao struktura podataka za spremanje parova vrijednosti ključeva karte. Umetanje para ključ-vrijednost vrši se pomoću hash kod od ključevi, Dakle, svaki ključ na karti mora biti jedinstven jer će se koristiti za dohvaćanje vrijednosti.
Redoslijed umetanja u HashMap je ne sačuvano, što znači da objekt hashmap ne vraća elemente u redoslijedu u koji su bili umetnuti. S druge strane, redoslijed vraćanja elemenata nije fiksiran.
ključ dozvoljeno je biti NULL odjednom, ali ono vrijednosti Može biti NULL u bilo koje vrijeme. HashMap može sadržavati heterogen objekti za ključeve kao i vrijednosti.
Postoje četiri konstruktora HashMap-a:
HashMap () HashMap (karta m) HashMap (int kapacitet), HashMap (int kapacitet, float fillRatio)
prvi konstruktor stvara prazan objekt HashMap-a. drugi konstruktor inicijalizira HashMap koristeći elemente Map m. treći konstruktor inicijalizira HashMap s kapacitetom navedenim u argumentu. četvrti konstruktor inicijalizira kapacitet kao i omjer ispunjavanja HashMap objekta.
Zadani kapacitet HashMap-a je 16, i zadano omjer punjenja HashMap-a je 0.75.
Definicija TreeMap-a
Kao HashMap, stablu je i klasa Map. TreeMap se proširuje AbstractMap klasa i pomagala NavigabelMap i SortedMap, Objekti TreeMap pohranjuju elemente karte u strukturu stabla. Struktura podataka koja se koristi za pohranu karte je Crveno-crno drvo.
TreeMap pohranjuje par ključeva vrijednosti u poredanim redoslijedom, što pomaže u brzom pronalaženju elemenata. Objekt TreeMap vraća elemente u sortirati (uzlazni) narudžba.
Postoje četiri konstruktora TreeMap-a:
TreeMap () TreeMap (komparator <? Super K> comp) TreeMap (Map <? Proširuje K,? Proširuje V> m) TreeMap (SortedMap prvi konstruktori stvaraju prazan objekt TreeMap-a koji bi se prirodnim redoslijedom razvrstao po ključevima. drugi konstruktor će stvoriti praznu kartu stabla koju će razvrstati po Uporedni cmp, treći konstruktor gore stvorit će mapu karte koja će se inicijalizirati pomoću unosa Karta m, četvrti konstruktor će stvoriti mapu karte koja će se inicijalizirati pomoću unosa SortedMap sm. Treemap nema svoju novu metodu, koristi metodu sučelja NavigableMap i SortedMap i klasu AbstractMap. TreeMap treba koristiti samo kad vam je potreban par ključeva u sortiranom obliku. Kako razvrstavanje uključuje troškove izvedbe. Budući da je HashMap nesinhroniziran, radi brže.
Zaključak: