一文读懂HashMap和HashTable的区别以及常见面试题( 四 )
\n
HashMap数据结构图
\n下图的table数组的每个格子都是一个桶 。 负载因子就是map中的元素占用的容量百分比 。 比如负载因子是0.75 , 初始容量(桶数量)为16时 , 那么允许装填的元素最大个数就是16*0.75 = 12 , 这个最大个数也被成为阈值 , 就是map中定义的threshold 。 超过这个阈值时 , map就会自动扩容 。
\n存储实现:put(keyvlaue)
\n
首先我们先看源码public V put(K key V value) { //当key为null , 调用putForNullKey方法 , 保存null与table第一个位置中 , 这是HashMap允许为null的原因
if (key == null) return putForNullKey(value); //计算key的hash值 , 此处对原来元素的hashcode进行了再次hash
int hash = hash(key.hashCode()); ------(1) //计算key hash 值在 table 数组中的位置
推荐阅读
- 地下城堡|《代号:破晓》官网“暗藏”剧情,你都读懂了吗?
- 法术|双城之战:羁绊、海克斯强化、装备一文看懂
- 仙剑奇侠传七|“吃鸡”游戏中单价最高的氪金物品!氪度力压车皮,却一文不值!
- 打野|王者荣耀:S25赛季打野需要注意什么?读懂这篇攻略,轻松上分
- 地下城与勇士|DNF:DNF超高质量减负,9.14减负改动一文看完
- 金泰相|“亚军不配找借口”Doinb谈亚军一文不值,只有S11夺冠才能找回颜面
- 梦幻西游|梦幻西游:老王打错灵犀玉损失5000元,百万无级别变得一文不值
- 电子竞技|电竞精神一文不值,贝克曼惨遭炮轰,久城透露QG假赛隐情!
- 孙一文|王者荣耀孙一文联动实锤?采访透露设计想法,皮肤想要带龙标
- 孙一文|王者荣耀:孙一文想要夏洛特冠军皮肤,两点要求让天美无能为力!