首页 > 其他 > 详细

各类Map实现类的性能分析

时间:2019-06-17 20:56:51      阅读:118      评论:0      收藏:0      [点我收藏+]

  对于Map的常用实现类而言,虽然HashMap和Hashtable的实现机制几乎一模一样,但由于Hashtable是一个古老的、线程安全的集合,

因此HashMap通常比Hashtable要快。

  TreeMap通常比HashMap、Hashtable要慢(尤其在插入、删除key-value对时更慢),因为TreeMap底层采用红黑树来管理key-value

对(红黑树的每个节点就是一个key-value对)。

  使用TreeMap有一个好处:TreeMap中的key-value对总是处于有序状态,无须专门进行排序操作。当TreeMap被填充之后,就可以调

用keySet(),取得由key组成的Set,然后使用toArray()方法生成key的数组,接下来使用Arrays的binarySearch()方法在已排序的数组中快速

地查询对象。

  对于一般的应用场景,程序应该多考虑使用HashMap,因为HashMap正是为快速查询设计的(HashMap底层其实也是采用数组来存储

key-value对)。但如果程序需要一个总是排好的Map时,则可以考虑TreeMap。

  LinkedHashMap比HashMap慢一点,因为它需要维护链表来保持Map中key-value时的添加顺序,IdentityHashMap性能没有特别出色

之处,因为它采用与HashMap基本相似的实现,只是它使用==而不是equals()方法来判断元素相等。EnumMap的性能最好,但它只能使用

同一个枚举值作为key。

各类Map实现类的性能分析

原文:https://www.cnblogs.com/kkuuklay/p/11041849.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!