怎么重写equals方法
时间: 2024-05-05 10:22:48 浏览: 87
重写equals方法
要重写equals方法,需要遵循以下几个步骤:
1. 确定需要比较的属性
确定需要比较的属性是非常重要的一步,这些属性是用于判断两个对象是否相等的依据。
2. 检查传入的对象是否为null和类型是否一致
在重写equals方法时,需要先检查传入的对象是否为null,如果为null则返回false。然后需要检查传入的对象类型是否与当前对象类型一致,如果类型不一致则返回false。
3. 比较属性值是否相等
比较两个对象的属性值是否相等,如果有任何一个属性不相等则返回false,否则返回true。
4. 覆盖hashCode方法
当重写equals方法时,也需要同时重写hashCode方法。hashCode方法是用于返回一个对象的哈希码,这个哈希码用于在哈希表中查找对象。如果两个对象相等,则它们的哈希码应该相等。
以下是一个示例代码,展示如何重写equals方法:
```java
public class Person {
private String name;
private int age;
@Override
public boolean equals(Object obj) {
// 检查传入的对象是否为null,如果为null则返回false
if (obj == null) {
return false;
}
// 检查传入的对象类型是否与当前对象类型一致,如果类型不一致则返回false
if (!(obj instanceof Person)) {
return false;
}
// 比较属性值是否相等,如果有任何一个属性不相等则返回false,否则返回true
Person person = (Person) obj;
return name.equals(person.name) && age == person.age;
}
@Override
public int hashCode() {
// 产生一个哈希码,使用name和age属性来计算
return Objects.hash(name, age);
}
}
```
阅读全文