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

Что происходит при добавлении элемента в HashMap

При добавлении элемента в HashMap происходит следующее:

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

Пример:

java
Map<String, Integer> map = new HashMap<>();
map.put("key", 1);  // Добавление элемента

При достижении load factor (по умолчанию 0.75) происходит увеличение capacity и rehashing всех элементов.

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

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

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

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