Метод equals()
в Java сравнивает два объекта на равенство.
По умолчанию, в базовом классе Object
, реализация equals()
эквивалентна оператору ==
, то есть он проверяет, ссылаются ли две переменные на один и тот же объект в памяти.
Однако, для многих пользовательских классов, таких как строки (String
) или коллекции, этот метод переопределяется, чтобы сравнивать объекты по их содержимому (логическое равенство), а не по ссылкам.
При переопределении 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)
должны последоваМетод equals()
в Java сравнивает два объекта на равенство.
По умолчанию, в базовом классе Object
, реализация equals()
эквивалентна оператору ==
, то есть он проверяет, ссылаются ли две переменные на один и тот же объект в памяти.
Однако, для многих пользовательских классов, таких как строки (String
) или коллекции, этот метод переопределяется, чтобы сравнивать объекты по их содержимому (логическое равенство), а не по ссылкам.
При переопределении 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)
должны последоваЗарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.