Equals в Java: как сравнить объекты и примеры использования

Метод equals в Java используется для сравнения объектов на равенство. Этот метод является унаследованным от класса Object и может быть переопределен в пользовательском классе.

Синтаксис метода equals такой:


public boolean equals(Object obj) {
    if (this == obj)
        return true;
    if (obj == null || getClass() != obj.getClass())
        return false;
    MyClass myObj = (MyClass) obj;
    return Objects.equals(property1, myObj.property1) &&
           Objects.equals(property2, myObj.property2);
}

Метод принимает объект, который необходимо сравнить на равенство с текущим объектом. Первым делом метод проверяет, являются ли объекты одним и тем же экземпляром (сравнивая ссылки на объекты). Если это так, то метод возвращает true. Затем метод проверяет, является ли переданный объект null или принадлежит ли он к другому классу. Если это так, то метод возвращает false. Затем метод приводит переданный объект к типу текущего класса и сравнивает свойства объектов с помощью метода equals класса Objects. Если все свойства совпадают, то метод возвращает true, иначе - false.

Пример использования метода equals:


public class MyClass {
    private String name;
    public MyClass(String name) {
        this.name = name;
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null || getClass() != obj.getClass())
            return false;
        MyClass myObj = (MyClass) obj;
        return Objects.equals(name, myObj.name);
    }
    public static void main(String[] args) {
        MyClass obj1 = new MyClass("John");
        MyClass obj2 = new MyClass("John");
        MyClass obj3 = new MyClass("Mary");
        System.out.println(obj1.equals(obj2)); // true
        System.out.println(obj1.equals(obj3)); // false
    }
}

В данном примере класс MyClass имеет одно свойство - имя. Метод equals переопределен, чтобы сравнивать объекты только по имени. В методе main создаются три объекта, и метод equals вызывается для сравнения объектов между собой. В результате сравнения объекты obj1 и obj2 равны, так как их свойства совпадают, а obj1 и obj3 не равны, так как их свойства отличаются.

Похожие вопросы на: "equals в java "

Extend Python: Tips, Tricks, and Tools for Advancing Your Python Skills
Python Foreach: A Comprehensive Guide to Using the foreach Loop
Fork Git: Основы работы с системой контроля версий
Как заменить текст и символы в Python: полное руководство
Реверс в Python: функция reverse()
Работа с датами в SQL: примеры и решения
Паттерн команда: примеры использования в программировании
Not Exists SQL: Examples and Best Practices
Работа с функцией BETWEEN в PostgreSQL
Inline Flex - гибкий подход к расположению элементов на сайте