Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

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.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.