定位桶算法:
int hash = key == null ? 0 : (h = key.hashCode()) ^ (h >>> 16);
index = (n-1) & hash
扩容:
if ((newCap = oldCap <<1) < MAXIMUM_CAPACITY && oldCap >=DEFAULT_INITIAL_CAPACITY) {
newThr = oldThr <<1;
}
HashMap默认配置
初始大小DEFAULT_INITIAL_CAPACITY = 16
最大容量MAXIMUM_CAPACITY = 1 << 30
默认负载银子DEFAULT_LOAD_FACTOR = 0.75f
冲突链表树化阈值TREEIFY_THRESHOLD=8
冲突非树化阈值UNTREEIFY_THRESHOLD=6
最小树化容量MIN_TREEIFY_CAPACITY=64
网友评论