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

Что происходит в HashMap при добавлении новой пары ключ-значение, если ни один из ключей не совпадает с новым ключом по equals

При добавлении новой пары в HashMap:

  1. Вычисляется хэш-код ключа через hashCode()
  2. По хэш-коду определяется индекс корзины (bucket) в массиве: index = (n - 1) & hash, где n - размер массива
  3. Если корзина пустая - создается новый узел (Node) и сохраняется в массив
  4. Если корзина не пустая, но хэши разные - новый узел добавляется в конец цепочки (или в дерево, если цепочка длинная)

Пример:

java
Map<String, Integer> map = new HashMap<>();
map.put("a", 1); // Создается новая корзина
map.put("b", 2); // Другая корзина (если хэши разные)

Важно: даже если equals() возвращает false, но хэши совпали - будет коллизия, и элементы попадут в одну корзину как связанный список/дерево.

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

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

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

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