ConcurrentHashMap和hashTable的区别、HashMap和TreeMap区别

版权声明:本站所提供的文章资讯、软件资源、素材源码等内容均为本作者提供、网友推荐、互联网整理而来(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考,如有侵犯您的版权,请联系我,本作者将在三个工作日内改正。 https://blog.csdn.net/weixin_42323802/article/details/86027454

ConcurrentHashMap集合了hashmap和hashtable 这两张表的优势:

hashtable 每次操作都会锁住真个结构
ConcurrentHashMap 锁的方式是稍微细粒度
把数据分为了16个桶,每次get put remove 等操作,只需要对对应的桶进行操作就可以了;
读取并发,因为在读取的大多数时候都没有用到锁定,写操作锁定的粒度又非常细,所以,其并发性能大大提升了;

参考
https://blog.csdn.net/wisgood/article/details/19338693

2019.01.09更新

》HashMap和TreeMap 的区别:

1、HashMap通常比TreeMap快一点(树和哈希表的数据结构使然),建议多使用HashMap,在需要排序的Map时候才用TreeMap。
2、继承的类不同、
HashMap继承AbstractMap ,
基于哈希表实现,明确定义了hashCode()和equals(),有调优选项;
可以调节 : 初始容量和负载因子

TreeMap继承自SortedMap ,
基于红黑树实现。TreeMap没有调优选项,因为该树总处于平衡状态。
3、性能上:
HashMap:适用于在Map中插入、删除和定位元素。
Treemap:适用于按自然顺序或自定义顺序遍历键(key)。

猜你喜欢

转载自blog.csdn.net/weixin_42323802/article/details/86027454