文章 62
浏览 15135
hashMap的扩容原理

hashMap的扩容原理

HashMap的扩容机制 hashMap扩容: 扩容就是重新计算容量,向hashMap不停的添加元素,当hashMap无法装载新的元素,对象将需要扩大数组容量,以便装入更多的元素。 haspMap扩容跟数据迁移具有很大的关联,我们先用图解的方式来说明数据迁移. 进行扩容前先介绍一些hahMap源码的变量 Node<K,V> loHead = null, loTail = null; //低位链表的头尾结点 Node<K,V> hiHead = null, hiTail = null; //高位链表的头尾结点 Node<K,V> next; //next指针 指向下一个元素 迁移前: 这里将其设置为长度为 8,扩容临界点 8 * 0.75 = 6 主要是为了画图 (hashMap默认容量是16) 以下讲解都是基于数组容量为 8 讲解的,流程都是一样的. 从图可知,发生了扩容并且是2的次方,并且 A,B,C两元素新的位置刚好是原数组位置的索引位置,D,E,F刚好在原数组位置索引 + 8 即原数组位置索引+数组容量。是不是真的是这样呢??,这时需要看源....

人民有信仰 民族有希望 国家有力量