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

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

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

    ……天天向上

    好的想法總是無窮無盡

    統(tǒng)計

    留言簿(1)

    閱讀排行榜

    評論排行榜

    LinkedHashMap和HashMap的比較使用

    由于現(xiàn)在項(xiàng)目中用到了LinkedHashMap,并不是太熟悉就到網(wǎng)上搜了一下。







    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));

       }

      }

    }


    運(yùn)行結(jié)果如下:


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


    分析:LinkedHashmap 的特點(diǎn)是put進(jìn)去的對象位置未發(fā)生變化,而HashMap會發(fā)生變化.


    再普及下:




    java為數(shù)據(jù)結(jié)構(gòu)中的映射定義了一個接口java.util.Map;它有四個實(shí)現(xiàn)類,分別是HashMap
    Hashtable LinkedHashMap 和TreeMap
    .


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


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


    LinkedHashMap
    是HashMap的一個子類,保存了記錄的插入順序,在用Iterator遍歷LinkedHashMap時,先得到的記錄肯定是先插入的.也可以在構(gòu)造時用帶參數(shù),按照應(yīng)用次數(shù)排序。在遍歷的時候會比HashMap慢,不過有種情況例外,當(dāng)HashMap容量很大,實(shí)際數(shù)據(jù)較少時,遍歷起來可能會比
    LinkedHashMap慢,因?yàn)長inkedHashMap的遍歷速度只和實(shí)際數(shù)據(jù)有關(guān),和容量無關(guān),而HashMap的遍歷速度和他的容量有關(guān)。


    TreeMap實(shí)現(xiàn)SortMap接口,能夠把它保存的記錄根據(jù)鍵排序,默認(rèn)是按鍵值的升序排序,也可以指定排序的比較器,當(dāng)用Iterator
    遍歷TreeMap時,得到的記錄是排過序的。


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


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


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


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


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


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

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

    評論

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

    aa  回復(fù)  更多評論   

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

    a  回復(fù)  更多評論   

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

    ''  回復(fù)  更多評論   

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

    -a  回復(fù)  更多評論   

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

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

    主站蜘蛛池模板: av无码免费一区二区三区| 日韩电影免费在线观看视频| 国产又黄又爽又刺激的免费网址| 亚洲人成网站色在线入口| 亚洲系列中文字幕| 男女超爽视频免费播放| 日本一卡精品视频免费| 国产国产成年年人免费看片| 亚洲国产综合精品中文第一区| 亚洲国产精品精华液| 久久久久国色av免费看| 国产又粗又长又硬免费视频| 中文字幕亚洲综合精品一区| 免费播放国产性色生活片| 国产成人精品久久免费动漫| 77777亚洲午夜久久多人| 亚洲熟妇无码一区二区三区| 午夜理伦剧场免费| 亚洲色婷婷综合开心网| 国产亚洲sss在线播放| 成人片黄网站色大片免费观看APP| 韩国免费三片在线视频| 99人中文字幕亚洲区| 国产福利免费视频| 精品久久洲久久久久护士免费| 久久亚洲国产视频| 二级毛片免费观看全程| 成全高清视频免费观看| 亚洲avav天堂av在线不卡| 永久免费无码日韩视频| 免费黄色大片网站| 亚洲成在人线电影天堂色| 国产免费一区二区三区在线观看| 亚洲AV无码一区二三区| 亚洲AV无码资源在线观看| 黄色成人免费网站| 亚洲国产精品久久久久网站 | 国产乱子精品免费视观看片| 亚洲男人的天堂www| 美女裸体无遮挡免费视频网站| 最近中文字幕免费mv视频8|