JDK1.8 HashMap(2)源码解析

序言

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

HashMap的put方法

数组长度为2的n次幂

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

资料

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

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

哈希情史知多少

原文地址:https://www.cnblogs.com/cnki/p/13676034.html