首页 > 文章列表 > 使用Java中的hashcode方法的实现和应用

使用Java中的hashcode方法的实现和应用

java hashCode
150 2023-04-25

说明

1、java中hashcode方法是Object类native方法,返回值为int类型。

2、根据一定的规则将与对方相关的信息,例如对方的存储地址、对方的字段等映射到数值中,该数值被称为散列值。

实例

   public static int hashCode(int a[]) {
        if (a == null)
            return 0;
 
        int result = 1;
        for (int element : a)
            result = 31 * result + element;
 
        return result;
    }

选择值31是因为它是奇数素数。如果它是偶数,乘法溢出,信息就会丢失,因为乘2等于移位。使用素数的好处不太清楚,但它是传统的。31的一个很好的特性是,乘法可以用移位和减法来代替,以获得更好的性能:31*i==(i<<5)-i。现代虚拟机会自动进行这种优化。