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

Какой принцип работы HаshMap при добавлении элемента

HashMap в Java хранит элементы в виде пар ключ-значение. При добавлении элемента:

  1. Вычисляется хеш ключа через hashCode()
  2. На основе хеша определяется индекс корзины (bucket) в массиве: index = (n - 1) & hash (где n - размер массива)
  3. Если корзина пуста - создается нода и помещается туда
  4. Если корзина занята - происходит проверка ключей:
    • Если ключи совпадают (по equals) - значение перезаписывается
    • Если нет - добавляется в виде LinkedList (до Java 8) или TreeNode (в Java 8+ при большом количестве коллизий)

Пример:

java
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);  // добавляет новую пару
map.put("apple", 2);  // перезаписывает значение

При достижении load factor (по умолчанию 0.75) происходит рехеширование - увеличение массива в 2 раза.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы