各类Map实现类的性能分析

  对于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。

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