解答
树化条件:
HashMap具体实现类中有两个变量
static final int TREEIFY_THRESHOLD = 8;
static final int MIN_TREEIFY_CAPACITY = 64;
哈希表的链表树化成红黑树有两个条件:
链表长度大于TREEIFY_THRESHOLD
哈希数组的长度大于MIN_TREEIFY_CAPACITY
退化条件:
扩容 resize( ) 时,红黑树拆分成的 lo 和 hi 两颗红黑树,每一颗树的结点数小于等于临界值 6 时退化成链表。
移除元素 remove( ) 时,在removeTreeNode( ) 方***检查红黑树是否满足退化条件,与结点数无关。如果红黑树根 root 为空,或者 root 的左子树/右子树为空,root.left.left 根的左子树的左子树为空,都会发生红黑树退化成链表。
帖子还没人回复快来抢沙发