3分钟让你大白:HashMap之红黑树树化进程
发布时间:2019-10-13 08:58:37 所属栏目:建站 来源:追逐仰望星空
导读:01 概述 HashMap是Java措施员行使频率最高的用于映射(键值对)处理赏罚的数据范例。跟着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现举办了优化,譬喻引入红黑树的数据布局和扩容的优化等。本文首要说明一下HashMap中红黑树树化的进程。 02
x自己为根节点返回x。 x的父节点为玄色可能x的父节点是根节点直接返回不必要调动。 如若上述两个前提不满意的话,就要举办调动了,应承我再贴一点代码......没有代码说明起来很坚苦。 06 颜色调动
这里是一个典范的一个玄色节点的两个子节点都是赤色的以是要举办颜色调动,由于插入的都是赤色节点,当检测到祖父节点的阁下子节点都是赤色的时辰两个赤色就发生了斗嘴,以是先将节点举办这种颜色调动,将祖父节点酿成赤色,然后将祖父的两个子节点酿成玄色,这样我们插入的赤色节点就不会违反红黑树的法则了。 ![]() 这里有人会有疑问,假如祖父节点是根节点呢,那样的话祖父节点也会酿成玄色,由于每次轮回举办插入均衡的操纵当举办这种颜色调动之后城市将插入节点的引用指向祖父节点,当举办下一轮轮回的时辰会优先检测当前节点是否是根节点,假如是根节点那就将颜色酿成玄色,下面看图: 当将节点指向祖父节点举办下一轮轮回时: ![]() 07 两个焦点旋转(左旋转和右旋转)
颜色调动完成后进入下面的else块 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |