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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于java-tip-各种Map的区别及如何选择的主要内容,如果未能解决你的问题,请参考以下文章

操作系统应该如何选

如何选择超过2T和3T及以上硬盘的MBR与GPT分区形式

如何选择固态硬盘?MLC硬盘与SLC硬盘有啥区别?

map和unordered_map的区别

jvectormap如何在选择区域时保持当前颜色?

小白用户如何选购阿里云服务器-操作系统篇!