Класс LinkedHashMap
Класс LinkedHashMap расширяет класс HashMap и реализует интерфейс Map. В отличие от обычной хеш-таблицы, LinkedHashMap запоминает порядок, в котором элементы были добавлены. Внутри он использует двусвязный список, который проходит через все записи, поэтому при переборе элементы возвращаются в порядке вставки. В конструктор можно передать начальную емкость, коэффициент загрузки и флаг accessOrder: если он равен true, то порядок будет не вставки, а последнего доступа к элементу.
Синтаксис
LinkedHashMap<KeyType, ValueType> map = new LinkedHashMap<>();
LinkedHashMap<KeyType, ValueType> map = new LinkedHashMap<>(initialCapacity);
LinkedHashMap<KeyType, ValueType> map = new LinkedHashMap<>(initialCapacity, loadFactor, accessOrder);
Пример
Давайте создадим LinkedHashMap и добавим в нее несколько пар ключ-значение:
import java.util.LinkedHashMap;
import java.util.Map;
public class Main
{
public static void main(String[] args)
{
Map<String, Integer> map = new LinkedHashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
map.put("d", 4);
map.put("e", 5);
System.out.println(map);
}
}
Результат выполнения кода:
{a=1, b=2, c=3, d=4, e=5}
Пример
Давайте получим значение по ключу и проверим, что порядок вставки сохраняется:
import java.util.LinkedHashMap;
import java.util.Map;
public class Main
{
public static void main(String[] args)
{
Map<String, Integer> map = new LinkedHashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
int res = map.get("b");
System.out.println(res);
System.out.println(map);
}
}
Результат выполнения кода:
2
{a=1, b=2, c=3}
Пример
Давайте создадим LinkedHashMap с порядком доступа, передав в конструктор accessOrder равным true:
import java.util.LinkedHashMap;
import java.util.Map;
public class Main
{
public static void main(String[] args)
{
Map<String, Integer> map = new LinkedHashMap<>(16, 0.75f, true);
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
map.put("d", 4);
map.put("e", 5);
map.get("a");
map.get("c");
System.out.println(map);
}
}
Результат выполнения кода:
{b=2, d=4, e=5, a=1, c=3}
Смотрите также
-
класс
LinkedHashMap,
который хранит порядок добавления элементов -
метод
put,
который добавляет пару ключ-значение -
метод
get,
который возвращает значение по ключу -
интерфейс
Map,
который описывает базовые операции над отображениями