Rozdiel medzi HashMap a TreeMap v Jave
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.
- Porovnávacia tabuľka
- definícia
- Kľúčové rozdiely
- záver
Porovnávacia tabuľka
Základ pre porovnanie | HashMap | TreeMap |
---|---|---|
základné | HashMap nezachová poradie vloženia. | TreeMap udržuje poradie vkladania. |
Dátová štruktúra | HashMap 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 implementuje | HashMap rozširuje triedu AbstractMap a implementuje rozhranie mapy. | TreeMap rozširuje triedu AbstractMap a implementuje rozhrania SortedMap a NavigableMap. |
výkon | HashMap 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) 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. 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.
záver: