Вопрос проверяет понимание контракта equals() / hashCode() и его влияния на работу хеш-коллекций.
Короткий ответ
Если equals() переопределён, а hashCode() — нет, контракт между ними нарушается. Объекты, которые считаются равными, могут иметь разные hashCode(). В хеш-коллекциях такие объекты будут вести себя некорректно. Например, объект может не находиться в HashMap, хотя он там есть. Это приводит к трудноуловимым ошибкам.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.