新手的HashMap源码分析(jdk8)与jdk8和jdk7的区别
Map接口的实现类:HashMap
底层结构:哈希表
jdk7:数组+链表
jdk8:数组+链表+红黑树
简单源码分析:
HashMap中维护了Node类型的数组table
当HashMap创建对象时,只是对loadFactor(加载因子)初始化为0.75;table还保持默认值null
当第一次添加时,将初始table容量为16,临界值为12(容量*加载因子)
每次添加调用putVal方法:
1.先获取key的二次哈希值并进行取与(&)运算,得出存放位置
2.判断该存放位置上是否有元素,如果没有直
原创
2021-02-24 12:51:42 ·
157 阅读 ·
0 评论