Метод equals()
в Java используется для сравнения двух объектов на равенство. По умолчанию, в случае объектов, наследующих от Object
без его переопределения, он сравнивает ссылки на объекты (==
), то есть проверяет, указывают ли переменные на один и тот же участок памяти.
Корректное переопределение метода equals()
важно для сравнения объектов по их содержимому, а не по их местоположению в памяти.
При переопределении 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()
важно для сравнения объектов по их содержимому, а не по их местоположению в памяти.
При переопределении 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)
должны стабильно возвращать один и тот же результат, при условии, что информация, используемая для сравнения в обоих объектах, не изменялась между вызовами.Register or sign in to get access to full answers for all questions from the question bank.