33. Что такое LinkedHashMap?

33. Что такое LinkedHashMap?

Unknown

LinkedHashMap - упорядоченная реализация хэш-таблицы. Здесь, в отличии от HashMap, порядок итерирования равен порядку добавления элементов.

Данная структура может слегка уступать по производительности родительскому HashMap, при этом время выполнения операций add(), contains(), remove() остается константой — O(1). Понадобится чуть больше места в памяти для хранения элементов и их связей, но это совсем небольшая плата за дополнительные фишечки. Он также принимаетнулевой ключ, а также нулевые значения.

LinkedHashMap не синхронизирована.

Вообще, из-за того что всю основную работу на себя берет родительский класс, серьезных отличий в реализации HashMap и LinkedHashMap не много. Можно упомянуть о парочке мелких:

  • Методы transfer() и containsValue() устроены чуть проще из-за наличия двунаправленной связи между элементами;
  • В классе LinkedHashMap.Entry реализованы методы recordRemoval() и recordAccess() (тот самый, который помещает элемент в конец при accessOrder = true). В HashMap оба этих метода пустые.
  • Map<Integer, String> linkedHashMap = new LinkedHashMap<Integer, String>(); linkedHashMap.put(1, "obj1");
  • linkedHashMap.put(15, "obj15");


Только что созданный объект linkedHashMap, помимо свойств унаследованных от HashMap (такие как table, loadFactor, threshold, size, entrySet и т.п.), так же содержит два доп. свойства:

  • header — «голова» двусвязного списка. При инициализации указывает сам на себя;
  • accessOrder — указывает каким образом будет осуществляться доступ к элементам при использовании итератора. При значении true — по порядку последнего доступа. При значении false доступ осуществляется в том порядке, в каком элементы были вставлены.

Предыдущий вопрос: 32. Как устроена HashMap, сложность основных операций? (Расскажите про принцип корзин)

Следующий вопрос: 34. Как устроена TreeMap, сложность основных операций?

Все вопросы по теме: список

Все темы: список

Вопросы/замечания/предложения/нашли ошибку:напишите мне


Report Page