Хорошо, поэтому я новичок в этих HashMaps, но имею некоторое представление о LinkedLists и HashMaps. Было бы здорово, если бы вы могли дать мне какое-то простое объяснение относительно LinkedHashMap, и как в титиле это означает, что мы явно определяем его каким-то типом?
Что такое LinkedHashMap <k, v>?
Ответ 1
A LinkedHashMap - это комбинация хеш-таблицу и связанный список. Оно имеет предсказуемый порядок итерации (a la связанный список), но скорость поиска это HashMap. Порядок итерация определяется порядок вставки, так что вы получите ключ/значения обратно в том порядке, в котором они были добавлены на эту карту. Вы должны быть немного осторожно здесь, так как повторная вставка ключ не изменяет оригинал порядок.
k означают ключ и v для значения.
/*
Simple Java LinkedHashMap example
This simple Java Example shows how to use Java LinkedHashMap.
It also describes how to add something to LinkedHashMap and how to
retrieve the value added from LinkedHashMap.
*/
import java.util.LinkedHashMap;
public class JavaLinkedHashMapExample {
public static void main(String[] args) {
//create object of LinkedHashMap
LinkedHashMap lHashMap = new LinkedHashMap();
/*
Add key value pair to LinkedHashMap using
Object put(Object key, Object value) method of Java LinkedHashMap class,
where key and value both are objects
put method returns Object which is either the value previously tied
to the key or null if no value mapped to the key.
*/
lHashMap.put("One", new Integer(1));
lHashMap.put("Two", new Integer(2));
/*
Please note that put method accepts Objects. Java Primitive values CAN NOT
be added directly to LinkedHashMap. It must be converted to corrosponding
wrapper class first.
*/
//retrieve value using Object get(Object key) method of Java LinkedHashMap class
Object obj = lHashMap.get("One");
System.out.println(obj);
/*
Please note that the return type of get method is an Object. The value must
be casted to the original class.
*/
}
}
/*
Output of the program would be
1
*/
Ответ 2
Это гибрид двух структур данных: LinkedList
, где порядок вставки сохраняется путем добавления элементов в конец списка узлов, которые имеют доступ к их непосредственным соседям, и HashMap
, или Map
, который использует массив bucket Lists
, где остальное подразделение по модулю ключа hashcode()
определяет стартовый ковш для запроса метода equals()
ключей, которые лежат в этом содержимом содержимого корзины.
Преимущество состоит в том, что вы можете перемещать существующие элементы в HashMap
по порядку вставки из-за природы LinkedList
, и вы можете быстро перейти к правильному ведру в ключевом поиске (сэкономить много времени для большой коллекции), если у вас есть ключ элемента.
Ответ 3
Это называется generics. k
и v
должны быть заменены фактическим типом, который вы хотите сохранить.
Чтобы создать HashMap, который отображает целые числа в строках, вы должны написать:
LinkedHashMap<Integer,String>
Ответ 4
Читайте о Generics in Java в Википедии.
Ответ 5
Ключи LinkedHashMap похожи на ArrayLists или массивы таким образом, что они хранятся в том порядке, в котором они вставлены. Обычные HashMaps сортируются по их хэш-коду.
k = ключ v = значение Они могут быть любого типа.
Ответ 6
Самое большое различие - привязка LinkedHashMap. Если вы используете итератор, ключи и значения будут в том же порядке, что и на карте. HashMap не имеет гарантии возврата заказа.