Sobes.tech
Back to questions
Junior — Middle
96

Могли бы вы объяснить назначение метода equals в языке Java и как он используется для сравнения объектов?

Answer from AI

sobes.tech AI

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

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

Пример переопределения 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 other = (Person) obj;
        return age == other.age && Objects.equals(name, other.name);
    }

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

Использование equals позволяет сравнивать объекты по содержимому, что важно для коллекций, поиска и других операций.