HashMap.java哈希方法设计

时间:2013-11-14 19:19:16

标签: java hash hashmap

在HashMap.java方法哈希

        static int hash(int h)
        {
    .............
    .............

 // This function ensures that hashCodes that differ only by
            // constant multiples at each bit position have a bounded
            // number of collisions (approximately 8 at default load factor).
             h  = (h >>> 20) ^ (h >>> 12);
             return h ^ (h >>> 7) ^ (h >>> 4);
        } 

//方法哈希

在计算哈希码后,几乎没有右移和按位“异或”运算符,有没有理由选择数字("20"&"12")然后"7"&"4"

        h ^= (h >>> 20) ^ (h >>> 12);
        return h ^ (h >>> 7) ^ (h >>> 4);

肯定是h在争抢,有些人可以帮助解释这究竟是什么解决了吗?

0 个答案:

没有答案