天天看点

HashMap,LinkedHashMap,Hashtable,TreeMap等区别

  这个几个对象都是存放键值对的存储结构,最简单的理解它们从key是否可为NULL,输出的是否按顺序?是正序还是逆序?等等方面思考就可以了

    1)关于key:

            key可以为null: HashMap   、 LindedHashMap

            key不能为null: Hashtable  、TreeTable

    2) 关于输出顺序

            有序:LinkedHashMap(正序)、Hashtable(逆序)  、TreeMap(正序)

            无序:HashMap(随机)

    3)ketSet()和entrySet()方法区别

          本人做个试验,将1000条记录分别放在连个HashMap对象中,

         用ketSet()迭代出来用了78毫秒

         用entrySet()迭代出来用了16毫秒

      所以建议使用entrySet()   ,它迭代出来的每个对象就是一个完整的键值对象,可以用 Entry  e的,e.getKey()和e,getValue()方法取得键或值。