Rozdíl mezi HashMap a TreeMap v Javě

Autor: Laura McKinney
Datum Vytvoření: 2 Duben 2021
Datum Aktualizace: 14 Smět 2024
Anonim
Rozdíl mezi HashMap a TreeMap v Javě - Technologie
Rozdíl mezi HashMap a TreeMap v Javě - Technologie

Obsah


HashMap a TreeMap jsou třídy Map a oba implementují rozhraní Map. Mapa je objekt, ve kterém jsou uloženy páry klíč - hodnota, kde je každý klíč jedinečný, ale mohou existovat duplicitní hodnoty. Třída HashMap používá tabulku hash jako datovou strukturu. TreeMap používá červeno-černý strom jako datovou strukturu. Hlavní rozdíl mezi HashMapem a Treemapem je, že HashMap nezachovává pořadí vkládání, zatímco Stromová mapa ano.

Začněme tedy diskusí o rozdílech mezi HashMapem a TreeMapem pomocí níže uvedené srovnávací tabulky.

  1. Srovnávací tabulka
  2. Definice
  3. Klíčové rozdíly
  4. Závěr

Srovnávací tabulka

Základ pro srovnáníHashMapTreeMap
Základní HashMap neudržuje pořadí vkládání.TreeMap udržuje pořadí vkládání.
Datová strukturaHashMap používá Hash Table jako podkladovou datovou strukturu.TreeMap používá červeno-černý strom jako podkladovou datovou strukturu.
Nulové klíče a hodnoty HashMap umožňuje Null klíč jednou Null hodnotu libovolný počet časů.TreeMap nepovoluje hodnotu Null, ale umožňuje hodnoty Null libovolný počet časů.
Rozšiřuje a implementujeHashMap rozšiřuje třídu AbstractMap a implementuje rozhraní Map.TreeMap rozšiřuje třídu AbstractMap a implementuje rozhraní SortedMap a NavigableMap.
VýkonHashMap pracuje rychleji.TreeMap ve srovnání s HashMap pracuje pomaleji.


Definice HashMap

HashMap je třída Map. Používá hash tabulka, jako datová struktura pro uložení dvojice klíčové hodnoty mapy. Vložení páru klíč - hodnota se provádí pomocí hash kód z klíče. Proto musí být každý klíč v mapě jedinečný, protože bude použit k načtení hodnot.

Pořadí vložení v HashMap je ne zachováno, což znamená, že objekt hashmap nevrací prvky v pořadí, v jakém byly vloženy. Na druhé straně není pořadí, ve kterém budou prvky vráceny, pevné.

klíč smí být NULA najednou, ale hodnoty může být NULA kdykoli. HashMap může obsahovat heterogenní objekty pro klíče a hodnoty.


Existují čtyři konstruktéři HashMap:

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

První konstruktor vytvoří prázdný objekt HashMap. druhý konstruktor inicializuje HashMap pomocí prvků Map m. Třetí konstruktor inicializuje HashMap s kapacitou uvedenou v argumentu. Čtvrtý konstruktor inicializuje kapacitu a poměr plnění objektu HashMap.

Výchozí kapacita HashMap je 16a výchozí poměr plnění HashMap je 0.75.

Definice TreeMap

Jako HashMap, TreeMap je také třída Map. TreeMap se rozšiřuje AbstractMap třída a nářadí NavigabelMap a SortedMap. Objekty TreeMap ukládají prvky mapy do stromové struktury. Datová struktura použitá pro uložení mapy je Červeno-černý strom.

TreeMap ukládá pár hodnot klíčů v seřazeném pořadí, což pomáhá při rychlém vyhledávání prvků. Objekt TreeMap vrátí prvky v tříděné (vzestupně) objednat.

Existují čtyři konstruktéři TreeMap:

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

První konstruktéři vytvoří prázdný objekt TreeMap, který by byl seřazen v přirozeném pořadí podle jeho klíčů. druhý konstruktor vytvoří prázdnou stromovou mapu, která bude tříděna podle Komparátor cmp. Třetí konstruktor výše vytvoří treemap, která bude inicializována pomocí položek Mapa m. Čtvrtý konstruktor vytvoří treemap, která bude inicializována pomocí položek SortedMap sm.

Treemap nemá žádnou novou novou metodu, používá metodu rozhraní NavigableMap a SortedMap a třídu AbstractMap.

  1. Obě třídy se používají k vytváření mapových objektů, ale základní rozdíl mezi HashMap a Treemap je v tom, že HashMap neudržuje pořadí vkládání, zatímco Treemap ano.
  2. Datová struktura, kterou používá Hashmap k ukládání prvků mapy, je hashova tabulka a datová struktura, kterou používá TreeMap k ukládání prvků mapy, je červeno-černý strom.
  3. Třídy Hashmap i Treemap rozšiřují třídu AbstractMap, ale třída HashMap implementuje rozhraní Map a TreeMap implementuje rozhraní NavigableMap a SortedMap.
  4. Hodnoty mohou být Null libovolný počet časů v obou, ale klíč může mít hodnotu Null pouze jednou v HashMap a klíč nemůže být nikdy v Treemapu.
  5. Výkon HashMap je rychlejší, neztrácí čas tříděním mapových prvků jako TreeMap. Proto TreeMap provádí pomaleji než HashMap.

Závěr:

TreeMap by se měl používat pouze v případě, že požadujete pár klíčových hodnot ve tříděné podobě. Protože třídění zahrnuje náklady na výkon. Nesynchronizovaný HashMap pracuje rychleji.