重写hashcode和equals实例
时间: 2023-08-29 15:08:36 浏览: 95
好的,这是一个重写 `hashCode` 和 `equals` 方法的示例:
```
public class Person {
private String name;
private int age;
private String address;
public Person(String name, int age, String address) {
this.name = name;
this.age = age;
this.address = address;
}
@Override
public int hashCode() {
int result = 17;
result = 31 * result + name.hashCode();
result = 31 * result + age;
result = 31 * result + address.hashCode();
return result;
}
@Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof Person)) {
return false;
}
Person other = (Person) obj;
return name.equals(other.name) && age == other.age && address.equals(other.address);
}
}
```
在这个示例中,我们使用 `name`、`age` 和 `address` 这三个属性来计算 `hashCode` 值。在 `equals` 方法中,我们首先检查传入的对象是否是当前对象,如果是则返回 true;如果传入对象不是 `Person` 类型,则返回 false;最后,我们比较传入对象的三个属性是否与当前对象的三个属性相同。这个方法确保了当两个 `Person` 对象的三个属性都相同时,它们被认为是相等的。
阅读全文