Назад к вопросам
Junior
73
questionbank

Что делает метод equals() в Java?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Метод equals() в Java используется для сравнения объектов на равенство. По умолчанию, в классе Object, он сравнивает ссылки на объекты (проверяет, указывают ли две переменные на один и тот же объект в памяти).

Классы могут переопределять метод equals() для реализации логики сравнения по значению. Это означает, что два разных объекта считаются равными, если их поля или состояние эквивалентны.

При переопределении equals() важно также переопределить метод hashCode(), соблюдая контракт: если два объекта равны по equals(), то их hashCode() должен быть одинаков.

Пример переопределения:

public class Person {
    private String name;
    private int age;

    // конструктор и геттеры

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age &&
               Objects.equals(name, person.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}