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

Как происходит вставка значения в HashMap

При вставке пары ключ-значение в HashMap:

  1. Вычисляется хеш-код ключа через hashCode()
  2. На основе хеша определяется индекс корзины (bucket): index = (n - 1) & hash, где n - размер массива
  3. Если корзина пустая - создается нода и помещается туда
  4. Если корзина занята - происходит проверка:
    • Если хеш и ключ совпадают - значение перезаписывается
    • Если это TreeNode (в случае преобразования в дерево) - вставка в дерево
    • Иначе - добавление в конец связного списка
  5. При превышении threshold (по умолчанию 0.75 от capacity) происходит resize()

Пример:

java
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1); // Вставка в пустую HashMap
map.put("banana", 2); 
map.put("apple", 3); // Перезапись значения
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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