📜  用示例列出Java中的 hashCode() 方法(1)

📅  最后修改于: 2023-12-03 15:11:19.277000             🧑  作者: Mango

Java中hashCode()方法

在Java中,hashCode()方法是一个用来获取Java对象哈希值的方法。哈希值是一个整数,由Java运行时系统生成,并分配给对象。 hashCode()方法的实现是由Java类库中Object类中的hashCode()方法提供的。

hashCode()方法的作用

对象的hashCode()方法可以用来判断是否同一个对象。两个对象如果equals比较返回true,那么它们的hashCode()值也应该相同。反之,如果两个对象的hashCode()值不相等,那么它们一定不是同一个对象。

hashCode()的实现方式

Java中的hashCode()方法的默认实现使用的是对象的地址值计算出来的一个整数。然而,Java允许重写hashCode()方法,以便为对象提供一个更有意义的哈希值。

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这个质数来作为乘数。可以使用任何质数,只要它的值不会导致数值类型溢出。