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

Определяется ли hashCode значения при добавлении элемента в HashMap

Да, hashCode объекта вычисляется при добавлении элемента в HashMap. Это происходит в момент вызова метода put(). Если объект уже присутствует в HashMap, hashCode не пересчитывается, так как он кэшируется в объекте (если объект immutable).

Пример:

java
Map<String, Integer> map = new HashMap<>();
map.put("key", 1); // hashCode строки "key" вычисляется здесь

Важно:

  • Если объект mutable и его поля изменяются после добавления в HashMap, это может нарушить работу HashMap, так как hashCode изменится, но бакет останется прежним.
  • Всегда переопределяйте hashCode() и equals() для кастомных объектов, используемых в качестве ключей.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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