Java Core trainee

Что такое Расскажи контракт equals и hashCode?

Ответ

Контракт equals: рефлексивность (a.equals(a) = true), симметричность (a.equals(b) ⇔ b.equals(a)), транзитивность (a=b и b=c → a=c), консистентность (повторный вызов даёт тот же результат), equals(null) = false. Согласованность с hashCode: равные по equals объекты обязаны иметь равный hashCode (обратное необязательно).

Разбор: Контракт equals — это рефлексивность, симметричность, транзитивность, консистентность и equals(null)=false; согласованность с hashCode означает, что равные объекты обязаны иметь равный hashCode (а не наоборот). Ловушки: подмена симметричности «антисимметричностью», разрешение неконсистентности и инверсия связи equals→hashCode.

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

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