📅  最后修改于: 2023-12-03 15:11:19.277000             🧑  作者: Mango
在Java中,hashCode()方法是一个用来获取Java对象哈希值的方法。哈希值是一个整数,由Java运行时系统生成,并分配给对象。 hashCode()方法的实现是由Java类库中Object类中的hashCode()方法提供的。
对象的hashCode()方法可以用来判断是否同一个对象。两个对象如果equals比较返回true,那么它们的hashCode()值也应该相同。反之,如果两个对象的hashCode()值不相等,那么它们一定不是同一个对象。
Java中的hashCode()方法的默认实现使用的是对象的地址值计算出来的一个整数。然而,Java允许重写hashCode()方法,以便为对象提供一个更有意义的哈希值。
hashCode()方法被设计为快速计算并返回哈希值。因此,hashCode()的计算是基于对象的属性值的,并尽可能地避免重复哈希码的情况。
下面是一个示例,说明如何实现自定义hashCode()方法:
public class Person {
private String name;
private int age;
private String email;
//constructor, setters and getters
@Override
public int hashCode() {
int result = 17;
result = 31 * result + name.hashCode();
result = 31 * result + age;
result = 31 * result + email.hashCode();
return result;
}
}
在这个示例中,使用了对象的3个属性值来计算hashCode()的结果,使用了31这个质数来作为乘数。可以使用任何质数,只要它的值不会导致数值类型溢出。