Java Core middle
Контракт equals/hashCode. Что сломается при нарушении?
Ответ
Если a.equals(b), то hashCode совпадают. Иначе HashMap/HashSet теряют объекты.
Разбор: При нарушении контракта равные объекты дают разные хэши и попадают в разные бакеты, поэтому get/contains ищут не в том бакете и объект «теряется». Исключения при этом не бросаются — поведение тихо ломается. TreeMap/TreeSet вообще используют Comparable/Comparator, а не hashCode, поэтому ссылка на них ошибочна.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.