关键词

Java中Equals使用方法汇总

Java中Equals使用方法汇总

Equals是Java中用于比较对象的方法,常用于判断两个对象是否相等。在Java中,我们可以通过两种方式来使用Equals:覆写Equals方法和使用Objects类中的equals方法。

覆写Equals方法

覆写Equals方法是指在一个类中自定义其equals方法,这样可以根据实际需求来自定义比较方式。

Java中的Equals方法遵循以下约定:

  1. 自反性:x.equals(x)返回true。
  2. 对称性:x.equals(y)返回true,则y.equals(x)也返回true。
  3. 传递性:x.equals(y)返回true,y.equals(z)返回true,则x.equals(z)也返回true。
  4. 一致性:多次调用x.equals(y)返回的结果一致。
  5. 非空性:x.equals(null)返回false。

下面是一个覆写Equals方法的示例:

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) {
        if (obj == this) return true;
        if (!(obj instanceof Person)) return false;

        Person person = (Person) obj;

        return person.name.equals(name) && person.age == age;
    }
}

在这个示例中,我们覆写了Equals方法,实现了按照名字和年龄来比较两个Person对象是否相等。

使用Objects类中的equals方法

Java中的Objects类提供了一个equals方法,我们可以使用这个方法来比较两个对象是否相等。

下面是一个使用Objects类中的equals方法的示例:

import java.util.Objects;

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

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

    // 省略getter、setter方法以及toString方法

    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true;
        if (obj == null || getClass() != obj.getClass()) return false;
        Person person = (Person) obj;
        return age == person.age && Objects.equals(name, person.name);
    }

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

在这个示例中,我们使用了Objects类中的equals方法和hashCode方法,这样可以保证我们的代码能够正常工作,并符合Java中的equals方法的设计规范。

以上就是Java中Equals使用方法的完整攻略。

本文链接:http://task.lmcjl.com/news/8032.html

展开阅读全文