← Все вопросы по Java
🔥 Java 📂 Java Core ⚡ Junior/Middle

Какой контракт между методами equals() и hashCode()? Что будет, если его нарушить?

Тренировать в Telegram-боте →
💡 Краткий ответ для собеседования
Если a.equals(b) == true, то a.hashCode() == b.hashCode(). Обратное не обязательно. При нарушении объекты могут теряться в HashMap/HashSet.

Варианты ответа в приложении:

  • A. hashCode должен быть уникальным для каждого объекта Правильный
  • B. Если хэши равны, объекты обязаны быть равны
  • C. Равные объекты должны иметь равные хэши, иначе коллекции на основе хэша работают некорректно
  • D. Нарушение контракта приводит к ошибке компиляции

Хотите уверенно пройти техническое собеседование?

В приложении Prep-it вы тренируетесь в режиме свайпов за 10 минут в день с мгновенными объяснениями и адаптивным повторением.