Вопрос проверяет знание контрактов equals() и hashCode() и понимание работы коллекций.
Короткий ответ
Переопределять hashCode() и equals() нужно не всегда, а только при логическом сравнении объектов. Если переопределен equals(), hashCode() тоже должен быть переопределен. Иначе коллекции будут работать некорректно. Стандартная реализация сравнивает ссылки, а не содержимое. Это важно учитывать при использовании объектов как ключей.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.