Hashmap扩容方法机制原理

Hashmap扩容方法,机制原理

1.7版本:

  1. 数组额定容量为16,元素数量超过负载因子(一般为0.75)后会扩容至原有数组大小*2。
  2. 遍历老数组每个位置上的链表每个元素。
  3. 取每个元素的key根据链表长度计算出在新数组中的下表。
  4. 将元素添加到新数组中。
  5. 修改hashmap对象的table属性。

1.8版本:

  1. 先生成新数组。
  2. 遍历数组中每个位置的链表或红黑树。
  3. 如果是链表,重新计算每个元素对应新数组中的下标,插入新数组中。
  4. 如果是红黑树,先计算红黑树每个元素在新数组中的下标位置。
    • 统计下标元素个数,个数超8生成新红黑树
    • 个数8以内建立新链表,尾插法插入新元素
  5. 所有元素转移完成之后,将新数组赋值给Hashmap的table属性。

版权声明:本文为qq_29087399原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。