linkedhashmap java linkedhashmap example implementation
Този урок обяснява всичко за LinkedHashMap в Java, включително LinkedHashMap Примери и методи, внедряване в Java, LinkedHashMap срещу HashMap:
LinkedHashMap в Java е реализация, която комбинира реализация на HashTable и LinkedList. Той реализира интерфейса Map. Двойките ключ-стойност на LinkedHashMap имат предвидим ред на итерации.
В допълнение към интерфейса Map, LinkedHashMap разширява и класа HashMap.
=> Посетете тук, за да видите серията за обучение за Java за всички.
прилагане на свързан списък в java
Какво ще научите:
- LinkedHashMap в Java
- LinkedHashMap срещу HashMap
- HashMap срещу TreeMap срещу LinkedHashMap
- Заключение
LinkedHashMap в Java
Някои от основните характеристики на LinkedHashMap са:
- Той съдържа стойности, базирани на ключ.
- Поддържа реда на вмъкване на двойки ключ-стойност.
- Той не позволява дублирания, той има уникални елементи.
- Може да има един нулев ключ. Но позволява множество нулеви стойности.
- Java LinkedHashMap не се синхронизира.
Декларация на LinkedHashMap
Класът LinkedHashMap в Java е част от пакета java.util.
Общата декларация на този клас в Java е както следва:
public class LinkedHashMap extends HashMap implements Map
Тук K => тип ключове на картата.
V => тип стойности, съпоставени с ключове.
Йерархията на класовете на LinkedHashMap е показана по-долу:
Както е показано в горната диаграма, LinkedHashMap наследява класа HashMap и AbstractMap и реализира интерфейса Map.
Пример за LinkedHashMap
По-долу е даден прост пример.
sql интервю въпроси и отговори за тестери
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()); } } }
Изход:
Съдържанието на LinkedHashMap:
1 ЕДИН
2 ДВЕ
3 ТРИ
4 ЧЕТИРИ
5 ПЕТ
Конструктори и методи
Нека обсъдим конструкторите и методите, предоставени от класа LinkedHashMap. Първо ще обсъдим конструкторите, последвани от методи.
Конструктори
Прототип на конструктора | Описание | |
---|---|---|
keySet | Set keySet () | Връща набор от ключове в картата. |
LinkedHashMap () | Конструктор по подразбиране за LinkedHashMap. | |
LinkedHashMap (вътрешен капацитет) | Създава обект LinkedHashMap с даден капацитет. | |
LinkedHashMap (вътрешен капацитет, float loadFactor) | Създава обект LinkedHashMap с даден капацитет и loadFactor. | |
LinkedHashMap (int capacity, float loadFactor, boolean accessOrder) | Създава обект LinkedHashMap с даден капацитет и loadFactor. Също така е посочен режимът на поръчка (accessOrder). | |
LinkedHashMap (карта m) | Създава обект LinkedHashMap и го инициализира със стойностите от картата m, предадени като аргумент. |
Методи
Метод | Прототип на метода | Описание |
---|---|---|
вземете | V get (Object key) | Връща стойността за дадения ключ. |
ясно | празно ясно () | Изчиства всички двойки ключ-стойност в картата. |
съдържа стойност | boolean containsValue (стойност на обекта) | Проверява дали картата съдържа един или повече ключове, съпоставени с дадената стойност. Връща вярно, ако да. |
entrySet | Комплект | Връща набор от записи в картата. |
за всеки | void forEach (действие на BiConsumer) | Изпълнява даденото действие за всички записи в картата. |
getOrDefault | V getOrDefault (Object key, V defaultValue) | Връща стойността, съпоставена с ключа. Ако не е картографирана стойност, се връща по подразбиране. |
removeEldestEntry | защитено булево премахванеEldestEntry (Map.Entry най-старото) | Премахва най-стария запис в картата и връща true при премахване. |
replaceAll | void replaceAll (функция BiFunction) | Извиква дадената функция при всеки запис и замества резултата от функцията със стойностите. |
стойности | Стойности на колекцията () | Връща колекцията от стойности в картата. |
Внедряване в Java
Програмата Java по-долу показва изпълнението на LinkedHashMap, като демонстрира методите, обсъдени по-горе.
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); } }
Изход:
Оригинална LinkedHashMap: {едно = червено, две = зелено, три = синьо}
LinkedHashMap ‘colors_map’ празен?: False
Размер на картата: 3
Стойност за ключ = ‘един’: Червен
maps_maps съдържа key = ‘two’: true
colors_map съдържа стойност ‘ree’: false
изтриване на елемент ‘един’: червен
Актуализирана карта на цветовете: {две = зелена, три = синя}
В тази програма декларираме цветна карта и я инициализираме. След това използваме различните методи, обсъдени по-горе, за да получим резултатите.
LinkedHashMap срещу HashMap
LinkedHashMap | HashMap | ||
---|---|---|---|
Сложността във времето на основните операции | O (1) | O (1) | O (1) |
Прилага подредени карти. | Прилага неподредени карти. | ||
Използва двойно свързан списък с групи. | Използва хеш таблица. | ||
Поддържа ред при итерация на елементите. | Не поддържа реда при итерация. | ||
Изисква повече памет. | Изисква по-малко памет от LinkedHashMap. | ||
Основните операции като добавяне, премахване, търсене и т.н. са по-бавни. | Основните операции като добавяне, премахване на търсенето са по-бързи. |
HashMap срещу TreeMap срещу LinkedHashMap
Нека сега сравним трите реализации на картата, а именно. HashMap, TreeMap и LinkedHashMap.
Следващата таблица показва сравнението / разликата.
поддържа въпроси за интервюта и отговори pdf
Сравнителен параметър | HashMap | LinkedHashMap | TreeMap |
---|---|---|---|
Интерфейс | Карта | Карта | Карта, Сортирана карта, Навигационна карта |
Структура на данни | Списък на кофите | Двойно свързан списък на кофите | Червено-черно дърво |
Поръчка за повторение | Не се поддържа поръчка. | Сортирано според реда за вмъкване | Сортирано според естествения ред на елементите |
Null Keys | Разрешени са | Разрешени са | Не е позволено |
Синхронизация | Не е синхронизирано | Не е синхронизирано | Не е синхронизирано |
Изискване за ключове | Необходимо е да се презапишат методите equals () и hashCode () | Необходимо е да се презапишат методите equals () и hashCode () | Поддържа се естествено подреждане или трябва да се достави сравнителен апарат |
често задавани въпроси
В # 1) Какво представлява LinkedHashMap в Java?
Отговор: LinkedHashMap в Java е реализиран като комбинация от HashTable и LinkedList. Той реализира интерфейса на картата. Той има предсказуем ред на повторение. Той вътрешно използва двойно свързан списък за записи.
Q # 2)Как LinkedHashMap работи в Java?
Отговор: Той е подобен на HashMap, но се различава от HashMap по реда на вмъкване, който LinkedHashMap поддържа. Елементите в LinkedHashMap се съхраняват по същия начин, както са въведени в структурата на данните.
Q # 3)Как да премина през LinkedHashMap?
Отговор: Можем да преминем през LinkedHashMap с помощта на итератор.
Следват стъпките, които можем да следваме за итерация през LinkedHashMap с помощта на итератор:
- Създайте нов обект LinkedHashMap.
- Използвайте метода Put API, за да вмъкнете двойки ключ-стойност в картата.
- Извикайте метода API на entrySet (), за да получите набор от двойки ключ-стойност в картата.
- Извикайте итератор в този набор, за да извлечете всяка двойка ключ-стойност, използвайки методите на API getKey () и getValue ().
Q # 4)Каква е ползата от LinkedHashMap в Java?
Отговор: Основното използване на LinkedHashMap в Java е да се използва за запазване на реда за вмъкване. Може да се използва и за запазване на реда за достъп, чрез който се осъществява достъп до ключовете. Тъй като е по-бърз от HashMap, LinkedHashMap може да се използва вместо HashMap, където производителността е критична.
Q # 5)HashMap по-бърз ли е от LinkedHashMap?
Отговор: И двете са сходни по изпълнение. HashMap се нуждае от по-малко памет в сравнение с LinkedHashMap, тъй като HashMap не поддържа реда за достъп. По този начин сравнително HashMap е по-бърз.
Заключение
В този урок обсъдихме LinkedHashMap в Java. Видяхме подробностите относно декларацията на класа, йерархията на класовете, конструкторите и методите.
Също така научихме основните разлики между LinkedHashMap и HashMap. Обсъдихме и трипосочната разлика между LinkedHashMap, HashMap и TreeMap.
В нашия предстоящ урок ще разгледаме още теми за Java Collection Framework.
=> Внимавайте тук за простия сериал за обучение на Java.
Препоръчително четене
- Урок за отражение на Java с примери
- Уроци за задълбочено затъмнение за начинаещи
- Какво представлява Java HashTable - внедряване и пример на HashTable
- Урок за JAVA за начинаещи: 100+ практически ръководства за Java видео
- Модификатори на достъп в Java - Урок с примери
- Java SWING Урок: Контейнер, компоненти и обработка на събития
- Java String съдържа () урок за методи с примери
- Java String с урок за String Buffer и String Builder