Java 中的 TreeMap 与 HashMap



TreeMap基于红黑树实现,时间复杂度平均能达到O(log n)。
HashMap基于散列表实现,时间复杂度平均能达到O(1)。


HashMap里面存入的键值对在取出的时候是随机的,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。

在Map 中插入、删除和定位元素,HashMap是最好的选择。


TreeMap取出来的是排序后的键值对。插入、删除需要维护平衡会牺牲一些效率。但如果要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。



由于跳表Skip List内部结构简单,所以实现容易;同时,由于没有平衡树那样的插入删除re-balance问题,使得并发控制粒度很细,也简单很多,非常适合高并发场景。所以,在NoSQL开源工具里,Google的LevelDB,以及Redis,都使用跳表作为“外排序”的基础数据结构。


参考来源:http://blog.hongtium.com/java-map-skiplist

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值