版权声明:本文为博主原创文章未经博主允许不得转载。 /zx/article/details/
1、JDK8将数据的存储方式由数组链表形式,优化为当链表长度大于8的时候链表形式变为红黑树形式,复杂度由O(n)降至O(logn)提高了查询效率,性能得到了提升
JDK7: JDK7会传入一个新的更大的容量并以此创建一个新的Entry数组,然后重新计算hash值将原来的数组元素拷貝到新的Entry数组中
//以新容量创建一个新的Entry数组 //根据新的hash值复制数组
即如果原来的数组长度为16,元素akey=5,元素bkey=21,那么在原来的数组中应该在哃一个链表中;扩容为32时元素a仍在位置5,而元素b应在5+16=21的位置上,节省了重新计算hash的时间提高了效率
//判断原容量是否大于最大容量 } //否則原容量扩大2倍为新容量 //遍历原表,将数据存到新表中 //hash小于oldCap小于时,进行与运算值为0