Найти тему
81 подписчик

🧠 Если вы хотите переопределить equals(), какие условия должны выполняться?


- Рефлексивность: для любой ссылки на значение x, x.equals(x) вернет true;

- Симметричность: для любых ссылок на значения x и y, x.equals(y) должно вернуть true, тогда и только тогда, когда y.equals(x) возвращает true.

- Транзитивность: для любых ссылок на значения x, y и z, если x.equals(y) и y.equals(z) возвращают true, тогда и x.equals(z) вернёт true;

- Непротиворечивость: для любых ссылок на значения х и у, если несколько раз вызвать х.equals(y), постоянно будет возвращаться значение true либо постоянно будет возвращаться значение false при условии, что никакая информация, используемая при сравнении объектов, не поменялась.

-Для любой ненулевой ссылки на значение х выражение х.equals(null) должно возвращать false.

На картинкее приведен пример, по которому все будет понятно, также не надо забывать, что при переопределении метода equals() необходимо переопределить метод hashCode().
🧠 Если вы хотите переопределить equals(), какие условия должны выполняться? - Рефлексивность: для любой ссылки на значение x, x.
Около минуты