Java Core middle

Контракт equals/hashCode. Что сломается при нарушении?

Ответ

Если a.equals(b), то hashCode совпадают. Иначе HashMap/HashSet теряют объекты.

Разбор: При нарушении контракта равные объекты дают разные хэши и попадают в разные бакеты, поэтому get/contains ищут не в том бакете и объект «теряется». Исключения при этом не бросаются — поведение тихо ломается. TreeMap/TreeSet вообще используют Comparable/Comparator, а не hashCode, поэтому ссылка на них ошибочна.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться