java-tip-各种Map的区别及如何选择

这里主要讨论这三种:HashMap、LinkedHashMap、TreeMap
1. HashMap是常规的哈希表,查询以及插入的性能最好,如果没有特殊要求,应该使用这个

 

2. LinkedHashMap:这个类比较有意思,
   它可以指定遍历的顺序:
   1) 元素添加的顺序
   2) 按最近最少使用的顺序

 

这个类的实现上继承了HashMap,只是比HashMap多维护了一个双链表,因此,
它的查询及插入性能稍差于HashMap。
但是它的遍历性能要好于HashMap。

 

如果想要按照元素添加顺序遍历,那么使用LinkedHashMap

 

3. TreeMap,这个类的内部实现类似于C++的std::map
TreeMap将元素存储在一个红黑树中,存储在它里面的Key必须实现Comparable接口。
由于使用了红黑树的原因,存储在它里面的key是从小到大排好序的。
它的各项性能指标都要比HashMap差。

 

如果想要Map中的元素是有序的,那么使用TreeMap
posted on 2016-02-28 23:20  sanlo  阅读(1283)  评论(0编辑  收藏  举报