一文读懂HashMap和HashTable的区别以及常见面试题(33)
e.next = newMap[index
; newMap[index
= e;
在这个rehash()方法中我们可以看到容量扩大两倍+1 , 同时需要将原来HashTable中的元素一一复制到新的HashTable中 , 这个过程是比较消耗时间的 , 同时还需要重新计算hashSeed的 , 毕竟容量已经变了 。
\n这里对阀值啰嗦一下:比如初始值11、加载因子默认0.75 , 那么这个时候阀值threshold=8 , 当容器中的元素达到8时 , HashTable进行一次扩容操作 , 容量 = 8 * 2 + 1 =17 , 而阀值threshold=17*0.75 = 13 , 当容器元素再一次达到阀值时 , HashTable还会进行扩容操作 , 依次类推 。
\n下面是计算key的hash值 , 这里hashSeed发挥了作用 。
\nprivate int hash(Object k) { return hashSeed ^ k.hashCode();
推荐阅读
- 地下城堡|《代号:破晓》官网“暗藏”剧情,你都读懂了吗?
- 法术|双城之战:羁绊、海克斯强化、装备一文看懂
- 仙剑奇侠传七|“吃鸡”游戏中单价最高的氪金物品!氪度力压车皮,却一文不值!
- 打野|王者荣耀:S25赛季打野需要注意什么?读懂这篇攻略,轻松上分
- 地下城与勇士|DNF:DNF超高质量减负,9.14减负改动一文看完
- 金泰相|“亚军不配找借口”Doinb谈亚军一文不值,只有S11夺冠才能找回颜面
- 梦幻西游|梦幻西游:老王打错灵犀玉损失5000元,百万无级别变得一文不值
- 电子竞技|电竞精神一文不值,贝克曼惨遭炮轰,久城透露QG假赛隐情!
- 孙一文|王者荣耀孙一文联动实锤?采访透露设计想法,皮肤想要带龙标
- 孙一文|王者荣耀:孙一文想要夏洛特冠军皮肤,两点要求让天美无能为力!