LinkedHashMap
Словарь, который помнит порядок добавления ключей.
Доступно с: Java 1.4
Синтаксис
public class LinkedHashMap<K, V> extends HashMap<K, V> implements SequencedMap<K, V>Примеры
Порядок обхода совпадает с порядком добавления:
void main() {
Map<String, Integer> steps = new LinkedHashMap<>();
steps.put("download", 3);
steps.put("install", 5);
steps.put("configure", 2);
IO.println(steps);
}Результат:
{download=3, install=5, configure=2}Первая и последняя пара (Java 21):
void main() {
var map = new LinkedHashMap<String, Integer>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
IO.println(map.firstEntry() + " " + map.lastEntry());
IO.println(map.reversed());
}Результат:
a=1 c=3
{c=3, b=2, a=1}Примечания
Повторный put() существующего ключа не меняет его позицию. Конструктор new LinkedHashMap<>(16, 0.75f, true) переключает порядок на «последний доступ» — основа простого LRU-кэша. С Java 21 реализует SequencedMap: firstEntry(), lastEntry(), pollFirstEntry(), reversed().
См. также
- HashMap — Словарь на основе хеш-таблицы: быстрый поиск по ключу, порядок не гарантирован.
- TreeMap — Словарь, ключи которого всегда отсортированы.
- LinkedHashSet — Множество, которое помнит порядок добавления элементов.
Вопросы и ответы по теме
В учебнике
- Словари: Map и HashMap — Словари Map в Java: пары ключ — значение, put и get, getOrDefault, подсчёт с merge, TreeMap и LinkedHashMap.