// 计算hash:高16bit不变,低16bit与高16bit异或 -> hash -> 在n较小时也能保证高低位bit均参与hash的计算,且开销较小
int hash(Object key) {
int h;
return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);
}
//计算index:(n-1) & hash -> index = Key.hash/Capacity
//注:n == map.size() == Capacity ; 取模用与操作会比较快,所以Capacity永远是2的N次方
Entry通过next属性实现多个Entry以单向链表存放
原文:https://www.cnblogs.com/xuanmingxi/p/14359137.html