博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDK7与JDK8中hashmap的区别
阅读量:6218 次
发布时间:2019-06-21

本文共 284 字,大约阅读时间需要 1 分钟。

  hot3.png

HashMap解决冲突是采用链表,性能上就抱有疑问,如果说成百上千个节点在hash时发生碰撞,存储一个链表中,那么如果要查找其中一个节点,那就不可避免的花费O(n)的查找时间,这将是多么大的性能损失。

然后JDK8就解决了这个问题,在最坏的情况下,链表的查找时间复杂度为O(n),而红黑树一直是O(logn),这样会提高HashMap的效率。

而JDK8采用的是位桶+链表/红黑树的方式,也是非线程安全的。当某个位桶的链表的长度达到某个阈值的时候,这个链表就将转换成红黑树。

转载于:https://my.oschina.net/134596/blog/1648201

你可能感兴趣的文章
node - 收藏集 - 掘金
查看>>
Java将枚举序列化为对象
查看>>
数据结构-BF算法及KMP算法
查看>>
HTML5 进阶系列:web Storage
查看>>
WatchService实现配置文件变更监听
查看>>
2017 Node.js 开发框架比较
查看>>
Python中Mock和MagicMock的区别
查看>>
Laravel 5.4 入门系列 7. 文章的显示
查看>>
明月的 WordPress 优化思路总结
查看>>
Amazon DynamoDB 入门6:query 和 scan
查看>>
Mac OS X and python “ValueError: unknown locale: UTF-8”
查看>>
理解CSRF跨站请求伪造
查看>>
被误解的MVC和被神化的MVVM
查看>>
DevOps日常:别人家的运维这样过
查看>>
中台之上(一):重视业务架构,不要让“业务的归业务、技术的归技术”
查看>>
通过Visual Studio为Linux编写C++代码
查看>>
利用Apache Spark SQL和DataFrames扩展关系数据库
查看>>
Netflix 混沌工程手册 Part 3:实践方法
查看>>
2018年开源状况:代码贡献超310亿行,而漏洞超16000个
查看>>
Java初学者如何能够把知识深入贯彻
查看>>