Java8 HashMap产生树后原链表依然存在且维持着
源码为证
先看TreeNode依赖
TreeNode继承关系 HashMap中的TreeNodeLinkeHashMap中的Entry
双向链表HashMap中的Node
所以说 就算是 TreeNode,依旧具备链表的能力。同属于树、双向链表、链表 节点。
它不止具备这种可以是这种结构的能力,并且它还真的是这种结构。
继续看源码
HashMap的判断包含value的方法,着重看遍历
看这个源码,并没有针对treeNode做判断,做特殊遍历呀,它不能排除当前hashMap没有树结构吧,这不是链表的遍历方法么?所以我就想,是不是链表还在?
继续看
追加Node到链表, 就算>8 产生tree 是不是意味着链表还在,并且如果还有冲突继续添加着链表元素。
看这 确实 是 没有 去掉 链表结构的,应该是两种结构都存在着。
看上面的添加树结构节点的代码,如果其中还有往链表追加元素,则证明成立
继续看putTreeVal源码
网友评论