Sobes.tech
Назад к вопросам
Junior — Middle
81

В чем заключается назначение метода equals() в Java?

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

sobes.tech AI

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

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

Пример переопределения equals() в классе Person:

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

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

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

Таким образом, equals() позволяет сравнивать объекты по логике, а не по адресу в памяти.