<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ……天天向上

    好的想法總是無窮無盡

    統計

    留言簿(1)

    閱讀排行榜

    評論排行榜

    LinkedHashMap和HashMap的比較使用

    由于現在項目中用到了LinkedHashMap,并不是太熟悉就到網上搜了一下。







    import
    java.util.HashMap;

    import
    java.util.Iterator;

    import
    java.util.LinkedHashMap;

    import
    java.util.Map;

    public
    class TestLinkedHashMap {


      public static
    void main(String
    args[])

      {

       System.out.println("*************************LinkedHashMap*************");

       Map<Integer,String> map = new LinkedHashMap<Integer,String>();

       map.put(6, "apple");

       map.put(3, "banana");

       map.put(2,"pear");

      

       for (Iterator it =  map.keySet().iterator();it.hasNext();)

       {

        Object key = it.next();

        System.out.println(
    key+
    "="+
    map.get(key));

       }

      

       System.out.println("*************************HashMap*************");

       Map<Integer,String>
    map1 =
    new  HashMap<Integer,String>();

       map1.put(6, "apple");

       map1.put(3, "banana");

       map1.put(2,"pear");

      

       for (Iterator it = map1.keySet().iterator();it.hasNext();)

       {

        Object key = it.next();

        System.out.println(
    key+
    "="+
    map1.get(key));

       }

      }

    }


    運行結果如下:


    *************************LinkedHashMap*************
    6=apple
    3=banana
    2=pear
    *************************HashMap**************************
    2=pear
    6=apple
    3=banana


    分析:LinkedHashmap 的特點是put進去的對象位置未發生變化,而HashMap會發生變化.


    再普及下:




    java為數據結構中的映射定義了一個接口java.util.Map;它有四個實現類,分別是HashMap
    Hashtable LinkedHashMap 和TreeMap
    .


    Map主要用于存儲健值對,根據鍵得到值,因此不允許鍵重復(重復了覆蓋了),但允許值重復。
    Hashmap
    是一個最常用的Map,它根據鍵的HashCode值存儲數據,根據鍵可以直接獲取它的值,具有很快的訪問速度,遍歷時,取得數據的順序是完全隨機的。
    HashMap最多只允許一條記錄的鍵為Null;允許多條記錄的值為
    Null;HashMap不支持線程的同步,即任一時刻可以有多個線程同時寫HashMap;可能會導致數據的不一致。如果需要同步,可以用
    Collections的synchronizedMap方法使HashMap具有同步的能力,或者使用ConcurrentHashMap。


    Hashtable與
    HashMap類似,它繼承自Dictionary類,不同的是:它不允許記錄的鍵或者值為空;它支持線程的同步,即任一時刻只有一個線程能寫Hashtable,因此也導致了
    Hashtable在寫入時會比較慢。


    LinkedHashMap
    是HashMap的一個子類,保存了記錄的插入順序,在用Iterator遍歷LinkedHashMap時,先得到的記錄肯定是先插入的.也可以在構造時用帶參數,按照應用次數排序。在遍歷的時候會比HashMap慢,不過有種情況例外,當HashMap容量很大,實際數據較少時,遍歷起來可能會比
    LinkedHashMap慢,因為LinkedHashMap的遍歷速度只和實際數據有關,和容量無關,而HashMap的遍歷速度和他的容量有關。


    TreeMap實現SortMap接口,能夠把它保存的記錄根據鍵排序,默認是按鍵值的升序排序,也可以指定排序的比較器,當用Iterator
    遍歷TreeMap時,得到的記錄是排過序的。


    一般情況下,我們用的最多的是HashMap,在Map 中插入、刪除和定位元素,HashMap
    是最好的選擇。但如果您要按自然順序或自定義順序遍歷鍵,那么TreeMap會更好。如果需要輸出的順序和輸入的相同,那么用LinkedHashMap
    可以實現,它還可以按讀取順序來排列.


    HashMap是一個最常用的Map,它根據鍵的hashCode值存儲數據,根據鍵可以直接獲取它的值,具有很快的訪問速度。HashMap最多只允許一條記錄的鍵為NULL,允許多條記錄的值為NULL。


    HashMap不支持線程同步,即任一時刻可以有多個線程同時寫HashMap,可能會導致數據的不一致性。如果需要同步,可以用Collections的synchronizedMap方法使HashMap具有同步的能力。


    Hashtable與HashMap類似,不同的是:它不允許記錄的鍵或者值為空;它支持線程的同步,即任一時刻只有一個線程能寫Hashtable,因此也導致了Hashtable在寫入時會比較慢。


    LinkedHashMap保存了記錄的插入順序,在用Iterator遍歷LinkedHashMap時,先得到的記錄肯定是先插入的。


    在遍歷的時候會比HashMap慢TreeMap能夠把它保存的記錄根據鍵排序,默認是按升序排序,也可以指定排序的比較器。當用Iterator遍歷TreeMap時,得到的記錄是排過序的。

    posted on 2012-09-05 14:12 japper 閱讀(16468) 評論(5)  編輯  收藏 所屬分類: Java

    評論

    # re: LinkedHashMap和HashMap的比較使用 [未登錄] 2013-12-17 14:49 a

    aa  回復  更多評論   

    # re: LinkedHashMap和HashMap的比較使用 [未登錄] 2013-12-17 14:49 a

    a  回復  更多評論   

    # re: LinkedHashMap和HashMap的比較使用 [未登錄] 2013-12-17 14:49 a

    ''  回復  更多評論   

    # re: LinkedHashMap和HashMap的比較使用 [未登錄] 2013-12-17 14:50 a

    -a  回復  更多評論   

    # re: LinkedHashMap和HashMap的比較使用 2014-03-21 15:31 JSON

    是的,如果我需要順序,我一般用LinkedHashMap  回復  更多評論   

    主站蜘蛛池模板: 亚洲国产a∨无码中文777| heyzo亚洲精品日韩| 亚洲va在线va天堂va四虎| 三年片在线观看免费观看大全中国| 在线观看免费人成视频色| 亚洲首页在线观看| 99在线观看免费视频| 亚洲va国产va天堂va久久| 你懂的在线免费观看| 日日噜噜噜噜夜夜爽亚洲精品| 4hu四虎免费影院www| 好看的电影网站亚洲一区| 中文成人久久久久影院免费观看 | 亚洲国产精品视频| 全部一级一级毛片免费看| 亚洲天堂在线视频| 青青操免费在线观看| 久久国产亚洲高清观看| 国产成人免费高清激情明星| 亚洲中文字幕无码一去台湾| 青青青青青青久久久免费观看| 亚洲精品无码成人| 免费大片在线观看网站| 国产福利免费视频| 久久亚洲私人国产精品| A在线观看免费网站大全| 亚洲欧美乱色情图片| 亚洲精品岛国片在线观看| 99麻豆久久久国产精品免费 | 18禁男女爽爽爽午夜网站免费| 亚洲一区二区三区久久| 国产无遮挡吃胸膜奶免费看| 中文字幕在线免费视频| 亚洲国产午夜精品理论片| 热99re久久免费视精品频软件| 国产成人自产拍免费视频| 亚洲精品偷拍无码不卡av| 免费国产在线观看| 免费播放一区二区三区| 亚洲精品无码mⅴ在线观看| 国产亚洲精品看片在线观看|