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

Как работает put() в hashCode

Метод put() в HashMap использует hashCode() для определения индекса корзины (bucket), в которую будет помещена пара ключ-значение.

  1. Вычисление хеша: Сначала вызывается hashCode() ключа.
  2. Дополнительное хеширование: Для уменьшения коллизий применяется внутренний метод hash(), который дополнительно обрабатывает хеш-код.
  3. Определение корзины: Индекс корзины вычисляется как (n - 1) & hash, где n — размер массива корзин.
  4. Разрешение коллизий: Если в корзине уже есть элементы, используется цепочка (в LinkedList или TreeNode для больших объемов).

Пример:

java
Map<String, Integer> map = new HashMap<>();
map.put("key", 42); // hashCode() "key" → индекс корзины → сохранение

Если hashCode() реализован некорректно (например, возвращает константу), это приведет к частым коллизиям и ухудшит производительность.

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

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

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

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