在HashMap具体实现类中,有两个变量:
第一个变量是链表树化的阈值,在每次插入操作时,会检查链表中元素的个数是否达到阈值,达到阈值以后才会进行树化操作。
而进行树化操作的第一个判断就是哈希数组的容量是否大于MIN_TREEIFY_CAPACITY,如果小于,进行扩容操作,而不是树化操作。代码片段如下:
综上:
哈希表的链表树化成红黑树有 两个条件:
1. 链表长度大于TREEIFY_THRESHOLD
2. 哈希数组的长度大于MIN_TREEIFY_CAPACITY
在HashMap具体实现类中,有两个变量:
第一个变量是链表树化的阈值,在每次插入操作时,会检查链表中元素的个数是否达到阈值,达到阈值以后才会进行树化操作。
而进行树化操作的第一个判断就是哈希数组的容量是否大于MIN_TREEIFY_CAPACITY,如果小于,进行扩容操作,而不是树化操作。代码片段如下:
综上:
哈希表的链表树化成红黑树有 两个条件:
1. 链表长度大于TREEIFY_THRESHOLD
2. 哈希数组的长度大于MIN_TREEIFY_CAPACITY