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
相关文章
相关标签/搜索