重写hashcode方法
时间: 2023-08-04 14:38:17 浏览: 143
复写hashCode()方法,和equasl()方法
在Java中,每个对象都有一个默认的hashCode()方法。这个方法返回一个int类型的哈希码,用于对象的散列码计算。如果两个对象相等,则它们的哈希码必须相等,因此重写hashCode()方法是非常重要的。
以下是重写hashCode()方法的步骤:
1.选择一个素数作为哈希码的初始值,例如17或31。
2.对于每个非空的属性,计算哈希码,并将其与总哈希码相加。可以使用Java提供的Objects.hashCode()方法计算一个对象的哈希码。
3.如果对象中的属性是一个数组,则需要将每个元素的哈希码都计算出来,并将它们相加。
4.最后,将总哈希码返回。
以下是一个重写hashCode()方法的示例:
```
@Override
public int hashCode() {
final int prime = 31;
int result = 17;
result = prime * result + Objects.hashCode(this.property1);
result = prime * result + Objects.hashCode(this.property2);
result = prime * result + Arrays.hashCode(this.arrayProperty);
return result;
}
```
在这个示例中,我们选择了素数31作为初始值。然后,我们计算了两个属性和一个数组属性的哈希码,并将它们相加。最后,我们返回总哈希码。
阅读全文