哈希运算过程
1、key.hashCode(),使用哈希值计算下标 i
2、键值对封装成 Entry 对象放入 i 位置
2.1、空位置,直接放入
2.2、有数据,依次 equals() 比较
2.2.1找到相等的,覆盖值
2.2.2没有相等的,链表连接在一起
2.3、负载率、加载因子 0.75 (数据量/容量)
2.3.1新建翻倍容量新数组
2.3.2所有数据重新哈希,放入新数组
2.4、jdk1.8
2.4.1链表长度到8,转成红黑树
2.4.2减少到6,转回成链表
哈希运算过程
1、key.hashCode(),使用哈希值计算下标 i
2、键值对封装成 Entry 对象放入 i 位置
2.1、空位置,直接放入
2.2、有数据,依次 equals() 比较
2.2.1找到相等的,覆盖值
2.2.2没有相等的,链表连接在一起
2.3、负载率、加载因子 0.75 (数据量/容量)
2.3.1新建翻倍容量新数组
2.3.2所有数据重新哈希,放入新数组
2.4、jdk1.8
2.4.1链表长度到8,转成红黑树
2.4.2减少到6,转回成链表