linkedhashmap java linkedhashmap example implementation
Tento výukový program vysvětluje vše o LinkedHashMap v Javě, včetně příkladu a metod LinkedHashMap, implementace v Javě, LinkedHashMap vs HashMap:
LinkedHashMap v Javě je implementace, která kombinuje implementaci HashTable a LinkedList. Implementuje rozhraní Map. Páry klíč – hodnota LinkedHashMap mají předvídatelné pořadí iterací.
Kromě rozhraní Map LinkedHashMap také rozšiřuje třídu HashMap.
=> Navštivte zde a prohlédněte si sérii školení Java pro všechny.
selen najít prvek pomocí selektoru css
Co se naučíte:
LinkedHashMap v Javě
Některé z hlavních charakteristik LinkedHashMap jsou:
- Obsahuje hodnoty založené na klíči.
- Udržuje pořadí vkládání párů klíč – hodnota.
- Nepovoluje duplikáty, má jedinečné prvky.
- Může mít jediný nulový klíč. Ale umožňuje více hodnot null.
- Java LinkedHashMap není synchronizována.
Prohlášení o LinkedHashMap
Třída LinkedHashMap v Javě je součástí balíčku java.util.
Obecná deklarace této třídy v Javě je následující:
public class LinkedHashMap extends HashMap implements Map
Zde K => typ klíčů na mapě.
V => typ hodnot mapovaných na klíče.
Hierarchie tříd LinkedHashMap je uvedena níže:
Jak je znázorněno ve výše uvedeném diagramu, LinkedHashMap dědí třídy HashMap a AbstractMap a implementuje rozhraní Map.
Příklad LinkedHashMap
Níže je uveden jednoduchý příklad.
import java.util.*; class Main{ public static void main(String args()){ //declare and initialize LinkedHashMap LinkedHashMap num_map=new LinkedHashMap(); num_map.put(1,'ONE'); num_map.put(2,'TWO'); num_map.put(3,'THREE'); num_map.put(4,'FOUR'); num_map.put(5,'FIVE'); System.out.println('The contents of LinkedHashMap:'); //retrieve the key-value pairs as set using entrySet & print each entry for(Map.Entry m:num_map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
Výstup:
Obsah LinkedHashMap:
1 JEDEN
2 DVA
3 TŘI
4 ČTYŘI
5 PĚT
c ++ náhodné číslo mezi 0 a 100
Konstruktéři a metody
Pojďme diskutovat o konstruktorech a metodách poskytovaných třídou LinkedHashMap. Nejprve probereme konstruktory a následně metody.
Konstruktéři
Prototyp konstruktoru | Popis | |
---|---|---|
keySet | Set keySet () | Vrátí sadu klíčů na mapě. |
LinkedHashMap () | Výchozí konstruktor pro LinkedHashMap. | |
LinkedHashMap (int kapacita) | Vytvoří objekt LinkedHashMap s danou kapacitou. | |
LinkedHashMap (int kapacita, float loadFactor) | Vytvoří objekt LinkedHashMap s danou kapacitou a loadFactor. | |
LinkedHashMap (int kapacita, float loadFactor, boolean accessOrder) | Vytvoří objekt LinkedHashMap s danou kapacitou a loadFactor. Je také zadán režim objednávání (accessOrder). | |
LinkedHashMap (mapa m) | Vytvoří objekt LinkedHashMap a inicializuje jej pomocí hodnot z mapy m předaných jako argument. |
Metody
Metoda | Metoda Prototyp | Popis |
---|---|---|
dostat | V get (klíč objektu) | Vrátí hodnotu pro daný klíč. |
Průhledná | prázdnota clear () | Vymaže všechny páry klíč – hodnota na mapě. |
containsValue | boolean containsValue (hodnota objektu) | Zkontroluje, zda mapa obsahuje jeden nebo více klíčů namapovaných na danou hodnotu. Vrátí true, pokud ano. |
entrySet | Soubor | Vrátí sadu položek na mapě. |
pro každého | void forEach (BiConsumer action) | Provede danou akci pro všechny položky na mapě. |
getOrDefault | V getOrDefault (klíč objektu, V defaultValue) | Vrátí hodnotu namapovanou na klíč. Pokud není namapována žádná hodnota, vrátí se výchozí hodnota. |
removeEldestEntry | chráněný booleovský removeEldestEntry (Map.Entry eldest) | Odstraní nejstarší položku na mapě a při odebrání vrátí hodnotu true. |
vyměnit vše | void replaceAll (funkce BiFunction) | Vyvolá danou funkci u každé položky a nahradí výsledek funkce hodnotami. |
hodnoty | Hodnoty kolekce () | Vrátí kolekci hodnot na mapě. |
Implementace v Javě
Níže uvedený program Java ukazuje implementaci LinkedHashMap předvedením výše popsaných metod.
import java.util.*; public class Main { public static void main(String a()) { //declare LinkedHashMap and initialize it with values LinkedHashMap colors_map = new LinkedHashMap(); colors_map.put('one', 'Red'); colors_map.put('two', 'Green'); colors_map.put('three', 'Blue'); // Original LinkedHashMap System.out.println('Original LinkedHashMap:' + colors_map); //isEmpty () System.out.println('LinkedHashMap 'colors_map' empty?:' + colors_map.isEmpty()); //size () System.out.println('Size of the map: ' + colors_map.size()); //get () System.out.println('Value for key = 'one':' + colors_map.get('one')); //containsKey () System.out.println('colors_map contains key = 'two':'+ colors_map.containsKey('two')); //containsValue () System.out.println('colors_map contains value 'ree':' + colors_map.containsValue('ree')); //remove () System.out.println('delete element 'one': ' + colors_map.remove('one')); System.out.println('Updated colors_map:' + colors_map); } }
Výstup:
Původní LinkedHashMap: {one = červená, dvě = zelená, tři = modrá}
LinkedHashMap ‘colors_map’ empty?: False
Velikost mapy: 3
Hodnota pro klíč = „jedna“: červená
colors_map contains key = ‘two’: true
colors_map obsahuje hodnotu „ree“: false
odstranit prvek „jeden“: červená
Aktualizovaná mapa barev: {two = green, three = blue}
V tomto programu deklarujeme barevnou mapu a inicializujeme ji. Poté použijeme různé metody popsané výše k získání výsledků.
LinkedHashMap Vs HashMap
LinkedHashMap | HashMap | ||
---|---|---|---|
Časová složitost základních operací | O (1) | O (1) | O (1) |
Provádí objednané mapy. | Implementuje neuspořádané mapy. | ||
Používá dvojnásobně propojený seznam segmentů. | Používá hashovací tabulku. | ||
Udržuje pořádek při iteraci prvků. | Při iteraci neudržuje pořadí. | ||
Vyžaduje více paměti. | Vyžaduje méně paměti než LinkedHashMap. | ||
Základní operace, jako je přidávání, odebírání, vyhledávání atd., Jsou pomalejší. | Základní operace, jako je přidávání a odebírání vyhledávání, jsou rychlejší. |
HashMap Vs TreeMap Vs LinkedHashMap
Pojďme nyní porovnat tři implementace map, viz. HashMap, TreeMap a LinkedHashMap.
Následující tabulka ukazuje srovnání / rozdíl.
Parametr porovnání | HashMap | LinkedHashMap | TreeMap |
---|---|---|---|
Rozhraní | Mapa | Mapa | Mapa, SortedMap, NavigableMap |
Datová struktura | Seznam kbelíků | Dvojitý propojený seznam kbelíků | Červeno-černý strom |
Iterační příkaz | Žádné objednávání není udržováno. | Řazeno podle objednávky | Seřazeno podle přirozeného uspořádání prvků |
Nulové klíče | Jsou povoleny | Jsou povoleny | Nepovoleno |
Synchronizace | Nesynchronizováno | Nesynchronizováno | Nesynchronizováno |
Požadavek na klíče | Je třeba přepsat metody equals () a hashCode () | Je třeba přepsat metody equals () a hashCode () | Přirozené řazení je zachováno nebo je třeba dodat komparátor |
Často kladené otázky
Otázka č. 1) Co je LinkedHashMap v Javě?
Odpovědět: LinkedHashMap v Javě je implementován jako kombinace HashTable a LinkedList. Implementuje mapové rozhraní. Má předvídatelné pořadí iterací. Interně pro vstupy používá dvojitě propojený seznam.
ukázkové testovací případy pro ruční testování
Otázka č. 2)Jak funguje LinkedHashMap v Javě?
Odpovědět: Je to podobné jako HashMap, ale liší se od HashMap v pořadí vkládání, které LinkedHashMap udržuje. Prvky v LinkedHashMap jsou uloženy stejným způsobem, jako jsou zadány v datové struktuře.
Otázka č. 3)Jak procházím smyčkou LinkedHashMap?
Odpovědět: Můžeme procházet LinkedHashMap pomocí iterátoru.
Následují kroky, které můžeme použít k iteraci pomocí LinkedHashMap pomocí iterátoru:
- Vytvořte nový objekt LinkedHashMap.
- K vložení párů klíč – hodnota do mapy použijte metodu Put API.
- Voláním metody API entrySet () získáte sadu párů klíč – hodnota na mapě.
- Vyvoláním iterátoru v této sadě načtěte každý pár klíč – hodnota pomocí metod API getKey () a getValue ().
Otázka č. 4)Jaké je použití LinkedHashMap v Javě?
Odpovědět: LinkedHashMap v Javě se používá hlavně k zachování pořadí vložení. Lze jej také použít k zachování pořadí přístupu, pomocí kterého se ke klíčům přistupuje. Vzhledem k tomu, že je rychlejší než HashMap, lze použít LinkedHashMap místo HashMap, kde je kritický výkon.
Otázka č. 5)Je HashMap rychlejší než LinkedHashMap?
Odpovědět: Oba mají podobný výkon. HashMap potřebuje méně paměti ve srovnání s LinkedHashMap, protože HashMap neudržuje pořadí přístupu. Poměrně je tedy HashMap rychlejší.
Závěr
V tomto kurzu jsme diskutovali o LinkedHashMap v Javě. Viděli jsme podrobnosti týkající se deklarace třídy, hierarchie tříd, konstruktorů a metod.
Také jsme se naučili primární rozdíly mezi, LinkedHashMap a HashMap. Také jsme diskutovali o 3cestném rozdílu mezi LinkedHashMap, HashMap a TreeMap.
V našem nadcházejícím kurzu prozkoumáme více témat o prostředí Java Collection Framework.
=> Dávejte pozor na jednoduchou sérii školení Java zde.
Doporučené čtení
- Výukový program Java Reflection s příklady
- Výukové programy pro zatmění do hloubky pro začátečníky
- Co je Java HashTable - implementace a příklad HashTable
- Výukový program JAVA pro začátečníky: 100+ praktických výukových programů Java Video
- Modifikátory přístupu v Javě - výuka s příklady
- Výukový program Java SWING: Kontejner, komponenty a zpracování událostí
- Java String obsahuje () Výukový program metod s příklady
- Výukový program Java String s funkcí String Buffer a String Builder