zoukankan      html  css  js  c++  java
  • 各类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。

  • 相关阅读:
    windows下php+apache+mysql环境搭建
    sql中的case when
    zend_db连接mysql(附完整代码)(转)
    自定加载的简单实例
    Zend Framework 留言本实战(转)
    C++中虚函数的作用是什么?它应该怎么用呢?(转)
    PHP输入流php://input(转)
    js中===与==区别
    ajax之cache血与泪~~
    js中的string.format
  • 原文地址:https://www.cnblogs.com/kkuuklay/p/11041849.html
Copyright © 2011-2022 走看看