Jaký je rozdíl mezi HashMap a LinkedHashMap

Obsah:

Anonim

The hlavní rozdíl mezi HashMap a LinkedHashMap je to HashMap neudržuje pořadí vkládání dat, zatímco LinkedHashMap udržuje pořadí vkládání dat.

Mapa je běžně používanou datovou strukturou. Dvě implementace Mapy v Java Standard Edition jsou HashMap a LikedHashMap. HashMap je implementován jako hashovací tabulka. Nemá žádné řazení klíčů ani hodnot. Na druhé straně LinkedHashMap udržuje pořadí vkládání dat.

Hashmap, Hash Table, LinkedHashMap, Mapa

Co je HashMap

HashMap je třída, která implementuje rozhraní Map pomocí tabulky hash. Rozšiřuje AbstractMap a AbstractMap implementuje rozhraní Map. HashMap obsahuje páry klíč – hodnota. Může se skládat z jedinečných klíčů. HashMap není synchronizován a neudržuje pořadí vložených dat. Příklad programu s HashMap je následující.

Obrázek 1: Program s HashMap

Ve výše uvedeném programu jsou „zaměstnanci“ předmětem HashMap. Může ukládat více položek s celočíselným typovým klíčem a hodnotou typu String. Metoda put umožňuje vkládání položek do HashMap. Smyčka for s Map.Entry se používá k iteraci všech položek v „zaměstnanci“. Metoda getKey zobrazí klíče, zatímco metoda getValues ​​vytiskne hodnoty odpovídající těmto klíčům.

HashMap nevytiskne prvky podle vloženého pořadí. Navíc, přestože existují dva záznamy se stejnými detaily, vytiskne pouze jeden z nich. Důvodem je, že HashMap obsahuje pouze jedinečné klíče.

Co je LinkedHashMap

Třída LinkedHashMap je implementací rozhraní Hashtable a Linked list rozhraní Map. Má předvídatelné pořadí iterací. Dědí třídu HashMap a implementuje rozhraní Map. LinkedHashMap má také páry klíč – hodnota a obsahuje pouze jedinečné prvky. Není však synchronizován.

Příklad je následující:

Obrázek 2: Program s LinkedHashMap

Ve výše uvedeném programu jsou „zaměstnanci“ předmětem LinkedHashMap. Může ukládat více položek s celočíselným typovým klíčem a hodnotou typu String. Metoda put umožňuje vkládání položek do LinkedHashMap. Smyčka for s Map.Entry pomáhá iterovat všechny položky v „zaměstnanci“. Metoda getKey zobrazí klíče, zatímco metoda getValues ​​vytiskne hodnoty odpovídající těmto klíčům.

LinkedHashMap vytiskne prvky podle vloženého pořadí. Kromě toho existují dva záznamy se stejnými detaily, ale vytiskne pouze jeden z nich. Důvodem je, že LinkedHashMap obsahuje pouze jedinečné klíče.

Rozdíl mezi HashMap a LinkedHashMap

Definice

HashMap je třída, která pomáhá vytvářet kolekci, která dědí třídu AbstractMap a implementuje rozhraní Map, zatímco LinkedHashMap je třída, která je implementací Hashtable i Linked List rozhraní Map s předvídatelným pořadím iterace. To je tedy hlavní rozdíl mezi HashMap a LinkedHashMap.

Objednávka vložení

Dalším rozdílem mezi HashMap a LinkedHashMap je, že HashMap neudržuje pořadí vkládání dat, zatímco LinkedHashMap udržuje pořadí vkládání dat.

Přidružení k rozhraní pro sběr dat

Závěr

HashMap a LinkedHashMap jsou dvě implementace rozhraní Map. Hlavní rozdíl mezi HashMap a LinkedHashMap je v tom, že HashMap neudržuje pořadí vkládání dat, zatímco LinkedHashMap udržuje pořadí vkládání dat.

Odkaz:

1. „HashMap v Javě - Javatpoint.“ Www.javatpoint.com, k dispozici zde. 2. "LinkedHashMap v Javě - Javatpoint." Www.javatpoint.com, k dispozici zde.

Jaký je rozdíl mezi HashMap a LinkedHashMap