linkedhashmap java linkedhashmap example implementation
Цей посібник пояснює все про LinkedHashMap в Java, включаючи приклади та методи LinkedHashMap, реалізацію в Java, LinkedHashMap проти HashMap:
LinkedHashMap в Java - це реалізація, яка поєднує в собі реалізацію HashTable та LinkedList. Він реалізує інтерфейс Map. Пари ключ-значення LinkedHashMap мають передбачуваний порядок ітерацій.
На додаток до інтерфейсу Map, LinkedHashMap також розширює клас HashMap.
=> Завітайте сюди, щоб побачити навчальну серію Java для всіх.
запитання та відповіді на c ++
Що ви дізнаєтесь:
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
Нижче наведено простий приклад.
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 | Встановити keySet () | Повертає набір ключів на карті. |
LinkedHashMap () | Конструктор за замовчуванням для LinkedHashMap. | |
LinkedHashMap (внутрішня потужність) | Створює об’єкт LinkedHashMap із заданою ємністю. | |
LinkedHashMap (внутрішня ємність, плаваючий loadFactor) | Створює об’єкт LinkedHashMap із заданою ємністю та loadFactor. | |
LinkedHashMap (int capacity, float loadFactor, boolean accessOrder) | Створює об’єкт LinkedHashMap із заданою ємністю та loadFactor. Також вказано режим замовлення (accessOrder). | |
LinkedHashMap (карта м) | Створює об’єкт LinkedHashMap та ініціалізує його значеннями з карти m, переданими як аргумент. |
Методи
Метод | Метод-прототип | Опис |
---|---|---|
отримати | V get (Ключ об'єкта) | Повертає значення для даного ключа. |
ясно | void clear () | Очищає всі пари ключ-значення на карті. |
містить значення | boolean containsValue (значення об'єкта) | Перевіряє, чи карта містить один або кілька ключів, зіставлених із заданим значенням. Повертає true, якщо так. |
entrySet | Встановити | Повертає набір записів на карті. |
для кожного | void forEach (дія BiConsumer) | Виконує задану дію для всіх записів на карті. |
getOrDefault | V getOrDefault (Ключ об’єкта, V defaultValue) | Повертає значення, зіставлене з ключем. Якщо значення не відображено, повертається значення за замовчуванням. |
removeEldestEntry | захищений булевий removeEldestEntry (Map.Entry старший) | Видаляє найстаріший запис на карті та повертає true при видаленні. |
replaceAll | void replaceAll (функція BiFunction) | Викликає задану функцію при кожному записі та замінює результат функції значеннями. |
значення | Значення колекції () | Повертає набір значень на карті. |
Впровадження в Java
Наведена нижче програма Java демонструє реалізацію LinkedHashMap, демонструючи методи, розглянуті вище.
приклад тесту junit у Java
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
видалити елемент «один»: червоний
Оновлена карта кольорів: {two = Green, three = Blue}
У цій програмі ми оголошуємо кольорову карту та ініціалізуємо її. Потім ми використовуємо різні методи, розглянуті вище, щоб отримати результати.
LinkedHashMap проти HashMap
LinkedHashMap | HashMap | ||
---|---|---|---|
Складність часу основних операцій | O (1) | O (1) | O (1) |
Реалізує впорядковані карти. | Реалізує невпорядковані карти. | ||
Використовує подвійно пов’язаний список сегментів. | Використовує хеш-таблицю. | ||
Підтримує порядок при ітерації елементів. | Не підтримує порядок під час ітерації. | ||
Потрібно більше пам'яті. | Потрібно менше пам'яті, ніж LinkedHashMap. | ||
Основні операції, такі як додавання, видалення, пошук тощо, відбуваються повільніше. | Основні операції, такі як додавання та видалення пошуку, є швидшими. |
HashMap проти TreeMap проти LinkedHashMap
Давайте тепер порівняємо три реалізації карт, а саме. HashMap, TreeMap і LinkedHashMap.
Наступна таблиця показує порівняння / різницю.
Параметр порівняння | HashMap | LinkedHashMap | TreeMap |
---|---|---|---|
Інтерфейс | Карта | Карта | Map, SortedMap, NavigableMap |
Структура даних | Список відер | Подвійний зв’язаний список сегментів | Червоно-Чорне дерево |
Порядок ітерації | Жодне замовлення не підтримується. | Відсортовано за порядком вставки | Відсортовано за природним упорядкуванням елементів |
Нульові ключі | Дозволені | Дозволені | Не дозволяється |
Синхронізація | Не синхронізовано | Не синхронізовано | Не синхронізовано |
Вимоги до ключів | Потрібно переписати методи equals () та hashCode () | Потрібно переписати методи equals () та hashCode () | Зберігається природне впорядкування або потрібно надати компаратор |
Часті запитання
Q # 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 з прикладами
- Поглиблені підручники Eclipse для початківців
- Що таке Java HashTable - Впровадження та приклад HashTable
- Підручник JAVA для початківців: 100+ практичних відео-підручників Java
- Модифікатори доступу в Java - Підручник із прикладами
- Підручник з Java SWING: Контейнер, компоненти та обробка подій
- Рядок Java містить () Підручник із методів із прикладами
- Рядок Java із підручником для буфера рядків та побудови рядків