java重写hashcode
时间: 2023-09-14 17:14:15 浏览: 40
在Java中,每个对象都有一个默认的hashCode()方法,该方法返回对象的哈希码。如果需要自定义哈希码的实现方式,可以重写hashCode()方法。以下是重写hashCode()方法的步骤:
1. 确定哈希算法:选择一个适合的哈希算法,例如MD5、SHA-1等。
2. 确定哈希码的计算方式:根据对象的属性计算哈希码。需要注意的是,哈希码的计算应该基于对象的不可变属性,如果属性值发生了改变,则哈希码也应该重新计算。
3. 重写hashCode()方法:在类中重写hashCode()方法,并根据步骤2中的哈希码计算方式,返回对象的哈希码。
以下是一个示例:
```
public class MyClass {
private int id;
private String name;
// 构造函数、getter和setter方法省略
@Override
public int hashCode() {
int result = 17;
result = 31 * result + id;
result = 31 * result + (name != null ? name.hashCode() : 0);
return result;
}
}
```
在上面的示例中,我们使用了一个常用的哈希算法,并基于对象的属性计算哈希码。具体来说,我们将初始值设为一个质数17,然后使用31这个质数作为乘数,将id和name的哈希码累加到result中,最后返回result作为对象的哈希码。