Встречается на 18% собеседований по Java

Как работает HashMap

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

  1. Вычисляется хеш ключа через hashCode()
  2. На основе хеша определяется индекс корзины (bucket)
  3. Если корзина пуста - элемент добавляется
  4. При коллизии (одинаковый хеш) используется цепочка (LinkedList до Java 8, затем TreeNode при большом количестве коллизий)
java
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);  // hash("apple") % capacity -> индекс
map.get("apple");     // аналогичный расчет хеша

Особенности:

  • Не гарантирует порядок элементов
  • Позволяет null ключ и null значения
  • Начальный capacity = 16, load factor = 0.75 (автоувеличение при заполнении)
  • Не потокобезопасна (используйте ConcurrentHashMap)
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы