请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

ConcurrentHashMap 转换成树结构条件

老师视频里写的当节点数超过默认值8(也可以是别的值)就需要转换成树结构。但是HashMap不是还有个MIN_TREEIFY_CAPACITY=64,还需要总节点数还要大于64才会转换成树结构。
难道ConcurrentHashMap没有这个条件么?MIN_TREEIFY_CAPACITY=64,还需要总节点数还要大于64才会转换成树结构。

正在回答 回答被采纳积分+3

1回答

翔仔 2019-10-12 23:52:04

同学好,这里最后一条写得不够完善有歧义,但是结合视频并看源码的时候,就会了解到,当超过

TREEIFY_THRESHOLD之后,就会触发

treeifyBin

这个方法,主要想表达的是这个。

但是

treeifyBin

执行的时候,里面会再次通过MIN_TREEIFY_CAPACITY判断是否需要树化

0 回复 有任何疑惑可以回复我~
  • 提问者 厥~~~ #1
    也就是说ConcurrentHashMap也需要同时满足链表节点大于TREEIFY_THRESHOLD=8 以及MIN_TREEIFY_CAPACITY=64总节点数还要大于64才会转换成树结构
    这两个条件才能转成红黑树,和HashMap是一致的对么?
    回复 有任何疑惑可以回复我~ 2019-10-13 00:10:47
  • 翔仔 回复 提问者 厥~~~ #2
    是的,一致的,一切以代码为准
    回复 有任何疑惑可以回复我~ 2019-10-13 00:12:57
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信