JDK1.8 HashMap(2)源码解析

序言

Java中HashMap采用了链地址法。链地址法,简单来说,就是数组加链表的结合。在每个数组元素上都一个链表结构,当数据被Hash后,得到数组下标,把数据放在对应下标元素的链表上。

HashMap的put方法

 

数组长度为2的n次幂

当数组长度为2的n次幂的时候,不同的key算得得index相同的几率较小,那么数据在数组上分布就比较均匀,也就是说碰撞的几率小,相对的,查询的时候就不用遍历某个位置上的链表,这样查询效率也就较高了。

 

资料

深入Java集合学习系列:HashMap的实现原理

hashmap冲突的解决方法以及原理分析

哈希情史知多少

posted @ 2020-09-15 22:22  ~沐风  阅读(131)  评论(0编辑  收藏  举报