Java中Equals使用方法汇总
Equals是Java中用于比较对象的方法,常用于判断两个对象是否相等。在Java中,我们可以通过两种方式来使用Equals:覆写Equals方法和使用Objects类中的equals方法。
覆写Equals方法
覆写Equals方法是指在一个类中自定义其equals方法,这样可以根据实际需求来自定义比较方式。
Java中的Equals方法遵循以下约定:
- 自反性:x.equals(x)返回true。
- 对称性:x.equals(y)返回true,则y.equals(x)也返回true。
- 传递性:x.equals(y)返回true,y.equals(z)返回true,则x.equals(z)也返回true。
- 一致性:多次调用x.equals(y)返回的结果一致。
- 非空性: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使用方法的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中Equals使用方法汇总 - Python技术站