Sobes.tech
Назад к вопросам
Junior — Middle
66

Как поведение порядка элементов в LinkedHashMap зависит от недавнего обращения к ним?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

В классе LinkedHashMap в Java порядок элементов может зависеть от порядка их вставки или от порядка доступа, в зависимости от параметра конструктора accessOrder.

Если accessOrder установлен в false (по умолчанию), то порядок элементов соответствует порядку их вставки — элементы перечисляются в том порядке, в котором они были добавлены.

Если accessOrder установлен в true, то порядок элементов меняется при обращении к ним (например, при вызове get(), put() или putAll() для существующего ключа). В этом случае элемент, к которому недавно обратились, перемещается в конец списка, отражая его недавнее использование. Это поведение полезно, например, для реализации кэшей с политикой LRU (Least Recently Used).

Пример создания LinkedHashMap с порядком доступа:

LinkedHashMap<Integer, String> map = new LinkedHashMap<>(16, 0.75f, true);
map.put(1, "one");
map.put(2, "two");
map.get(1); // теперь элемент с ключом 1 считается недавно использованным
// При итерации элемент с ключом 1 будет идти после ключа 2