2021
08-25
08-25
基于hashmap 的扩容和树形化全面分析
一、树形化//链表转红黑树的阈值staticfinalintTREEIFY_THRESHOLD=8;//红黑树转链表的阈值staticfinalintUNTREEIFY_THRESHOLD=6;/***最小树形化容量阈值:即当哈希表中的容量>该值时,才允许树形化链表(即将链表转换成红黑树)*否则,若桶内元素太多时,则直接扩容,而不是树形化*为了避免进行扩容、树形化选择的冲突,这个值不能小于4*TREEIFY_THRESHOLD**/staticfinalintMIN_TREEIFY_CAPACITY=64;第一...
继续阅读 >
hashMap死循环1.原因:jdk1.7时使用头插入法 ,1.8之后改成了尾插入法解决了这个问题HashMap死循环问题图解在HashMap的数组真实长度达到阈值后,会调用扩容方法:voidresize(intnewCapacity){Entry[]oldTable=table;intoldCapacity=oldTable.length;if(oldCapacity==MAXIMUM_CAPACITY){threshold=Integer.MAX_VALUE;return;}Entry[]newTab...