Home > Java > javaTutorial > How to use the equals() function of the Object class in Java to compare whether two objects are equal

How to use the equals() function of the Object class in Java to compare whether two objects are equal

PHPz
Release: 2023-07-24 20:00:17
Original
1872 people have browsed it

How to use the equals() function of the Object class in Java to compare whether two objects are equal

In Java, the equals() function is a method used to compare whether two objects are equal. All Java classes inherit from the Object class, so all objects can be compared using the equals() function. However, to correctly compare two objects for equality, you need to override the equals() method in your custom class.

The default implementation of the equals() method in the Object class uses reference equality for comparison. That is, the equals() method will return true only when two objects refer to the same memory address. This is not the behavior we want in most cases. Typically, we want to compare the contents of two objects for equality.

In order to achieve this goal, we need to override the equals() method in the custom class. When overriding the equals() method, you need to pay attention to the following points:

  1. First, you need to check whether the incoming object is null. If the object passed in is null, false is returned directly.
  2. Secondly, you need to check whether the incoming object is an instance of the current class. If it is not an instance of the same class, return false directly.
  3. Finally, we can compare the properties of two objects for equality as needed. The method of comparison depends on the actual situation.

The following is a simple example, we use a Person class to demonstrate how to override the equals() method:

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

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public boolean equals(Object obj) {
        // 检查传入的对象是否为null
        if (obj == null) {
            return false;
        }
        
        // 检查传入的对象是否是Person类的实例
        if (!(obj instanceof Person)) {
            return false;
        }
        
        // 比较两个对象的属性是否相等
        Person other = (Person) obj;
        return this.name.equals(other.name) && this.age == other.age;
    }
}
Copy after login

In the above example, we override the Person class equals() method. First, we check if the incoming object is null, and if so, return false directly. We then use the instanceof operator to check whether the incoming object is an instance of the Person class, and if not, return false directly. Finally, we compare the name and age properties of the two objects to see if they are equal. If they are equal, we return true, otherwise we return false.

Next, we can use the equals() method to compare whether two Person objects are equal:

public class Main {
    public static void main(String[] args) {
        Person person1 = new Person("Alice", 25);
        Person person2 = new Person("Bob", 30);
        Person person3 = new Person("Alice", 25);

        System.out.println(person1.equals(person2)); // false
        System.out.println(person1.equals(person3)); // true
    }
}
Copy after login

In the above example, we created three Person objects. By calling the equals() method to compare person1 and person2, the result is false because their name and age attributes are not equal. By calling the equals() method to compare person1 and person3, the result is true because their name and age attributes are equal.

Through the above example, we can see how to use the equals() method of the Object class to compare whether two objects are equal. When overriding the equals() method, we can determine whether the objects are equal based on their properties to meet our actual needs.

The above is the detailed content of How to use the equals() function of the Object class in Java to compare whether two objects are equal. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template