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

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

Компании, где спрашивали
СБЕРСБЕР

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

sobes.tech AI

Да, в Java метод equals используется для сравнения объектов на смысловое равенство, в отличие от оператора ==, который сравнивает ссылки (адреса в памяти).

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

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

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);
    }
}

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

Итого, метод equals — основной способ сравнения объектов по содержимому в Java.