校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > java语言 > Map、set集合(后序会删除)
题目

HashMap树化条件?退化条件?

解答

树化条件:

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 根的左子树的左子树为空,都会发生红黑树退化成链表。

C 0条回复 评论

帖子还没人回复快来抢沙发