Rozdiel medzi HashMap a TreeMap v Jave

Autor: Laura McKinney
Dátum Stvorenia: 2 Apríl 2021
Dátum Aktualizácie: 1 Smieť 2024
Anonim
Review: Quiz 0
Video: Review: Quiz 0

Obsah


HashMap a TreeMap sú triedy Map a implementujú rozhranie Map. Mapa je objekt, v ktorom sú uložené páry kľúč - hodnota, pričom každý kľúč je jedinečný a môžu existovať duplicitné hodnoty. Trieda HashMap používa tabuľku hash ako dátovú štruktúru. TreeMap používa červeno-čierny strom ako dátovú štruktúru. Hlavným rozdielom medzi HashMap a Treemap je to, že HashMap nezachová poradie vkladania, zatiaľ čo Treemap robí.

Začnime teda diskusiou o rozdieloch medzi HashMap a TreeMap pomocou porovnávacej tabuľky uvedenej nižšie.

  1. Porovnávacia tabuľka
  2. definícia
  3. Kľúčové rozdiely
  4. záver

Porovnávacia tabuľka

Základ pre porovnanieHashMapTreeMap
základné HashMap nezachová poradie vloženia.TreeMap udržuje poradie vkladania.
Dátová štruktúraHashMap používa Hash Table ako základnú dátovú štruktúru.TreeMap používa červeno-čierny strom ako základnú dátovú štruktúru.
Null Kľúče a hodnoty HashMap umožňuje Null kľúč raz null hodnotu ľubovoľný počet časov.TreeMap nepovoľuje kľúč Null, ale umožňuje hodnoty Null ľubovoľný počet časov.
Rozširuje a implementujeHashMap rozširuje triedu AbstractMap a implementuje rozhranie mapy.TreeMap rozširuje triedu AbstractMap a implementuje rozhrania SortedMap a NavigableMap.
výkonHashMap pracuje rýchlejšie.TreeMap v porovnaní s HashMap pracuje pomalšie.


Definícia HashMap

HashMap je trieda Map. Používa hash tabuľka, ako dátová štruktúra na uloženie páru kľúčovej hodnoty máp. Vkladanie páru kľúč - hodnota sa vykonáva pomocou hash kód z klávesy, Preto musí byť každý kľúč na mape jedinečný, pretože sa použije na získanie hodnôt.

Poradie vkladania v HashMap je nie konzervovaný, čo znamená, že objekt hashmap nevracia prvky v poradí, v akom boli vložené. Na druhej strane poradie, v ktorom sa budú prvky vrátené, nie je stanovené.

kľúč môže byť NULOVÝ naraz, ale hodnoty môže byť NULOVÝ kedykoľvek. HashMap môže obsahovať heterogénne objekty pre kľúče, ako aj hodnoty.


Existujú štyria konštruktéri HashMap:

HashMap () HashMap (mapa m) HashMap (int kapacita), HashMap (int kapacita, float fillRatio)

najprv Konštruktor vytvorí prázdny objekt HashMap. druhý konštruktor inicializuje HashMap pomocou prvkov Map m. tretina Konštruktor inicializuje HashMap s kapacitou poskytnutou v argumente. štvrtý konštruktor inicializuje kapacitu, ako aj pomer plnenia objektu HashMap.

Predvolená hodnota kapacita HashMap je 16a predvolené pomer plnenia HashMap je 0.75.

Definícia TreeMap

Rovnako ako HashMap, TreeMap je tiež trieda máp. TreeMap sa rozširuje AbstractMap triedy a náradia NavigabelMap a SortedMap, Objekty TreeMap ukladajú prvky mapy do stromovej štruktúry. Dátová štruktúra použitá na ukladanie máp je Červeno-čierny strom.

TreeMap ukladá pár hodnôt kľúčov v zoradenom poradí, čo pomáha pri rýchlom vyhľadávaní prvkov. Objekt TreeMap vracia prvky v triedený (stúpajúca) objednať.

Existujú štyria konštruktéri TreeMap:

TreeMap () TreeMap (komparátor <? Super K> comp) TreeMap (mapa <? Rozširuje K,? Rozširuje V> m) TreeMap (SortedMap) sm)

najprv Konštruktori vytvoria prázdny objekt TreeMap, ktorý by bol usporiadaný podľa jeho kľúčov v prirodzenom poradí. druhý konštruktor vytvorí prázdnu stromovú mapu, ktorá bude usporiadaná podľa Porovnávací cmp, tretina vyššie vytvorí konštruktor, ktorý sa inicializuje pomocou záznamov mapa m, štvrtý konštruktor vytvorí tremapu, ktorá bude inicializovaná pomocou položiek SortedMap sm.

Treemap nemá vlastnú novú metódu, používa metódu rozhrania NavigableMap a SortedMap a triedu AbstractMap.

  1. Obe triedy sa používajú na vytváranie mapových objektov, ale základný rozdiel medzi HashMap a Treemap je v tom, že HashMap neudržiava poradie vkladania, zatiaľ čo Treemap áno.
  2. Štruktúra údajov, ktorú používa Hashmap na ukladanie prvkov mapy, je hašovacia tabuľka a štruktúra údajov, ktorú používa TreeMap na ukladanie prvkov mapy, je červeno-čierny strom.
  3. Triedy Hashmap aj Treemap rozširujú triedu AbstractMap, ale trieda HashMap implementuje rozhranie Map a TreeMap implementuje rozhrania NavigableMap a SortedMap.
  4. Hodnoty môžu byť Null ľubovoľný počet v oboch, ale kľúč môže mať hodnotu Null iba raz v HashMap a kľúč nemôže byť nikdy v Treemap.
  5. Výkon HashMap je rýchlejší, nestráca čas pri triedení prvkov mapy ako TreeMap. Preto TreeMap vykonáva pomalšie ako HashMap.

záver:

TreeMap by sa mal používať iba v prípade, že potrebujete pár kľúč - hodnota v zoradenej forme. Ako triedenie zahŕňa náklady na výkon. Nesynchronizovaná HashMap pracuje rýchlejšie.