当前位置: 首页 > news >正文

HashMap为什么要引用红黑树

在JDK8中,HashMap的底层有数组+链表变为数组+链表+红黑树。主要是为了解决哈希冲突极端情况下的性能退化问题,同时也是一种防御性编程手段。

红黑树

红黑树有四大特征:
1.节点非黑即红。
2.根节点和叶子节点为黑色。
3.每个红色节点必须有两个黑色子节点。不能有两个连续的红色节点。
4.从任一节点到其所有子节点的最短路径都含有相同数量的黑色节点。

为什么选择红黑树

Java8引入红黑树后,在链表长度大于等于8后自动转换为红黑树,将查询/插入/删除效率由O(n)降低到了O(log(n))。
HashMap是一个需要频繁进行put和remove操作的容器,红黑树在插入删除时的旋转操作更少,平均性能更高,且内存占用更小。
AVL树相比起来虽然查询稍快,但是维护成本过高。不适合HashMap这种更新频繁的容器。

为什么不直接使用红黑树

1.红黑树会比链表占用更多的内存,且维护成本更高。
2.在长度小于8时,链表的速度比红黑树更快,且链表长度到达8的情况比较少见。

其他条件

当数组长度大于64时,链表才会转换为红黑树。
数组长度小于64时会优先进行扩容操作减少哈希冲突。
当红黑树节点数小于6时会退化为链表
http://www.jsqmd.com/news/320631/

相关文章:

  • APP图标ico格式生成地址
  • 防爆不锈钢波纹软管口碑好的厂家有哪些,昊硕金属制品上榜了吗?
  • C/C++标准术语
  • 2026最新任天堂二手Switch游戏机系列回收价格,支持上门回收
  • 石家庄市井陉矿区农村自建房地基施工要点,2026年石家庄市井陉矿区自建房公司权威排行
  • 2026年热门的钢模板/耐腐蚀钢模板用户好评厂家推荐
  • 石家庄市藁城区农村自建房造价预算表,2026年石家庄市藁城区高性价比自建房公司推荐
  • 无人机河道漂浮检测数据集 废弃物;3. 废弃船;4. 捕鱼养殖;5. 水污染;6. 漂浮物
  • 广州造极科技产品质量如何,选择它做数字化营销合适吗
  • 2026年宁波可靠银料回收联系方式大盘点,哪家性价比高
  • SEW变频器MC07B0150-503-4-00
  • 总结2026年浙江充电桩推荐厂家,助力您的选购
  • 2026年天津重庆深圳等地充电桩安装技术精湛团队年度排名推荐
  • 选购科大能通产品,它的市场份额大吗,产品稳定性和企业文化咋样?
  • 重磅|粉丝福利|专栏1.2|微电网|智能电网系列
  • 2026年上海靠谱的贴片太阳能板推荐定制厂商排名
  • Pwn2Own 2026揭开电动汽车充电桩生态安全致命短板:37个全新0Day漏洞血洗充电桩
  • 2026年KBSG矿用隔爆型干式变压器供应商选择,靠谱的品牌多少钱
  • AI元人文构想:悬鉴《人工智能与社会科学互为前沿》
  • 基于微信小程序的校园综合服务平台【源码+文档+调试】
  • Crocs新广告,以自我表达超越算法同质化
  • 2026年靠谱的仓库屋面防水/上海屋面防水优质供应商推荐参考
  • 2026年昆明性价比高的登蔚1J79可伐合金推荐,费用情况大揭秘
  • 2026年广州地区口碑好的数字化营销公司排名,广州造极科技价格合理吗
  • AI写论文新选择!4款AI论文写作工具,为你的学术创作助力!
  • 2026年海南性价比高的金属软管推荐,景县昊硕金属制品上榜
  • 2026年评价高的铰链奢适美学五金/高品质奢适美学五金厂家最新实力排行
  • 2026年靠谱的超临界萃取设备/超临界萃取用户口碑最好的厂家榜
  • AI写论文深度剖析!4款AI论文写作工具,帮你写出优质期刊论文!
  • 1.30