Hashmap,Hashtable,TreeMap,LinkedHashMap之間的區別

1,Hashmap我們用得比較多的集合,產生於jdk 1.2版本,源碼put方法有個判斷: 

        if(key==null)

                return putForNullKey(value);

      可以看出hashmap是支持存放鍵key值爲null;

         HashMap是線程不安全的,所以也相對更快

2,Hashtable產生於jdk 1.1版本,相對於HashMap 的方法,HashTable是線程安全的,在put方法上有個判斷:

          if (value == null) {

            throw new NullPointerException();

        }

        和 int hash =   hash(key); //獲取hash值

        說明HashTable是 不支持key,value爲null的 會報空指針異常

3,TreeMap是有順序的

        TreeMap實現了SortMap接口 說明根據 存入集合,是有順序的,默認是按鍵值的升序排的序

        可用iterator遍歷,得到想要的序

        treeMap的鍵值key不能爲null

4,LinkedHashMap 插入是有順序的

          用iterator遍歷LinkedHashMap ,先進先出,基於鏈表的設計,

          也可以在構造時帶參,根據參數採取排序

          LinkedHashMap 是支持存放鍵key值爲null;

        

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章