h += ~(h << 9);
h ^= (h >>> 14);
h += (h << 4);
h ^= (h >>> 10);
return h;
}
这个方法是HashMap中定义的一个方法:HashMap不直接使用对象的
hashCode(),而是通过这个算法来提高离散性,但是这个算法我实在
看不懂,不知道这个方法是怎么弄出来的。
...全文
1015打赏收藏
请高手指点,我要是弄懂,送200分!
static int hash(Object x) { int h = x.hashCode(); h += ~(h <>> 14); h += (h <>> 10); return h; } 这个方法是HashMap中定义的一个方法:HashMap不直接使用对象的 hashCode(),而是通过这个算法来提高离散性,但是这个算法我实在 看不懂,不知道这个方法是怎么弄出来的。