Метод equals в Java используется для проверки равенства объектов. По умолчанию, он проверяет, ссылаются ли две переменные на один и тот же объект в памяти. Классы могут переопределять этот метод, чтобы реализовать собственную логику сравнения, основанную на содержимом объектов, а не на их ссылках.
Обычно при переопределении equals соблюдаются следующие правила:
x, x.equals(x) должно возвращать true.x и y, x.equals(y) должно возвращать true тогда и только тогда, когда y.equals(x) возвращает true.x, y и z, если x.equals(y) возвращает true и y.equals(z) возвращает true, то x.equals(z) должно возвращать true.x и y, многократный вызов x.equals(y) должен последовательно возвращать либо true, либо false, при условии, что информация, используемая для сравнения объектов при вызове, не изменяется.x, x.equals(null) должно возвращать false.Важно также переопределять метод hashCode всякий раз, когда переопределяется equals, чтобы сохранить контракт между этими методами: если два объекта равны согласно методу equals, то их хэш-коды, возвращаемые методом hashCode, также должны быть равны.
Пример переопределения equals и hashCode:
java