hashmap hashtable LinkedHashMap   TreeMap

本文详细解析了Java中Map接口的不同实现类,包括HashMap、Hashtable、CurrentHashMap、LinkedHashMap及TreeMap的特点与应用场景。针对HashMap和Hashtable的线程安全性进行了讨论,并介绍了CurrentHashMap在JDK 1.8中的优化措施。

hashmap: 

线程不安全

并发存数据时,resize时可能会死循环。

hashtable

 

性能参数:

初始容量   : 预设值, 避免或减少reSize

负载因子:reSize的时机。  时间与空间的选择。    负载因子小   元素同位置的概率低,查找时间少,但空间利用率差。  负载因子大  元素同位置的概率高,查找时间多,但空间利用率高。

 

关于1.8的优化

对于重复index的元素,还是链表存储,但当链表长度超过8后,改为用红黑树存储。

 

CurrentHashMap 

jdk1.8版本做了优化 采用 node+cas+  实现高性能读写的

 

 

LinkedHashMap  

在HashMap的基础上 为每个元素 增加了两个变量来表明插入数据前后节点。

TreeMap

按照key排序的Map, 默认按照升序。 可重写排序规则。

 

转载于:https://my.oschina.net/zhaolin/blog/1801247

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值