Sobes.tech
Junior
91
questionbank

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

AI答案

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