一文读懂HashMap和HashTable的区别以及常见面试题(23)
int hash = hash(key.hashCode()); // 取出 table 数组中指定索引处的值
for (Entry<K V> e = table[indexFor(hash table.length)
; e != null; e = e.next) { Object k; //若搜索的key与查找的key相同 , 则返回相对应的value
if (e.hash == hash && ((k = e.key) == key || key.equals(k))) return e.value;
return null;
在这里能够根据key快速的取到value除了和HashMap的数据结构密不可分外 , 还和Entry有莫大的关系 , 在前面就提到过 , HashMap在存储过程中并没有将key , value分开来存储 , 而是当做一个整体key-value来处理的 , 这个整体就是Entry对象 。
\n同时value也只相当于key的附属而已 。 在存储的过程中 , 系统根据key的hashcode来决定Entry在table数组中的存储位置 , 在取的过程中同样根据key的hashcode取出相对应的Entry对象 。
推荐阅读
- 地下城堡|《代号:破晓》官网“暗藏”剧情,你都读懂了吗?
- 法术|双城之战:羁绊、海克斯强化、装备一文看懂
- 仙剑奇侠传七|“吃鸡”游戏中单价最高的氪金物品!氪度力压车皮,却一文不值!
- 打野|王者荣耀:S25赛季打野需要注意什么?读懂这篇攻略,轻松上分
- 地下城与勇士|DNF:DNF超高质量减负,9.14减负改动一文看完
- 金泰相|“亚军不配找借口”Doinb谈亚军一文不值,只有S11夺冠才能找回颜面
- 梦幻西游|梦幻西游:老王打错灵犀玉损失5000元,百万无级别变得一文不值
- 电子竞技|电竞精神一文不值,贝克曼惨遭炮轰,久城透露QG假赛隐情!
- 孙一文|王者荣耀孙一文联动实锤?采访透露设计想法,皮肤想要带龙标
- 孙一文|王者荣耀:孙一文想要夏洛特冠军皮肤,两点要求让天美无能为力!