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

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

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

    posts - 2, comments - 1, trackbacks - 0, articles - 0

    HashMap,HashTable,TreeMap區(qū)別和用法

    Posted on 2011-08-10 15:58 Angel's Kiss 閱讀(6010) 評論(1)  編輯  收藏 所屬分類: Java基礎(chǔ)篇
     

         開始學(xué)HashTable,HashMap和TreeMap的時(shí)候比較暈,覺得作用差不多,但是到實(shí)際運(yùn)用的時(shí)候又發(fā)現(xiàn)有許多差別的。需要大家注意,在實(shí)際開發(fā)中以需求而定。

             java為數(shù)據(jù)結(jié)構(gòu)中的映射定義了一個(gè)接口java.util.Map,而HashMap Hashtable和TreeMap就是它的實(shí)現(xiàn)類。Map是將鍵映射到值的對象,一個(gè)映射不能包含重復(fù)的鍵;每個(gè)鍵最多只能映射一個(gè)一個(gè)值。

              Hashmap 是一個(gè)最常用的Map,它根據(jù)鍵的HashCode 值存儲數(shù)據(jù),根據(jù)鍵可以直接獲取它的值,具有很快的訪問速度。HashMap最多只允許一條記錄的鍵為Null;允許多條記錄的值為Null;HashMap不支持線程的同步,即任一時(shí)刻可以有多個(gè)線程同時(shí)寫HashMap;可能會導(dǎo)致數(shù)據(jù)的不一致。如果需要同步,可以用Collections的synchronizedMap方法使HashMap具有同步的能力.

              Hashtable 與 HashMap類似,但是主要有6點(diǎn)不同。

             1.HashTable的方法是同步的,HashMap未經(jīng)同步,所以在多線程場合要手動同步HashMap這個(gè)區(qū)別就像Vector和ArrayList一樣。   

            2.HashTable不允許null值,key和value都不可以,HashMap允許null值,key和value都可以。HashMap允許key值只能由一個(gè)null值,因?yàn)閔ashmap如果key值相同,新的key, value將替代舊的。   

            3.HashTable有一個(gè)contains(Object value)功能和containsValue(Object value)功能一樣。   

            4.HashTable使用Enumeration,HashMap使用Iterator。   

            5.HashTable中hash數(shù)組默認(rèn)大小是11,增加的方式是 old*2+1。HashMap中hash數(shù)組的默認(rèn)大小是16,而且一定是2的指數(shù)。   

            6.哈希值的使用不同,HashTable直接使用對象的hashCode。

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

            下面是HashTable,HashMap和TreeMap總結(jié)的一個(gè)經(jīng)典例子。

    package com.taobao.luxiaoting;

    import java.util.Map;   

    import java.util.HashMap;   

    import java.util.Set;   

    import java.util.HashSet;   

    import java.util.Iterator;   

    import java.util.Hashtable;   

    import java.util.TreeMap;   

    class  HashMaps   

    {   

           public static void main(String[] args)    

          {   

                Map map=new HashMap();               

                map.put(“a”, “aaa”);   

                map.put(“b”, “bbb”);   

                map.put(“c”, “ccc”);   

                map.put(“d”, “ddd”);   

                  

                Iterator iterator = map.keySet().iterator();               

                while (iterator.hasNext()) {   

                 Object key = iterator.next();   

                 System.out.println(“map.get(key) is :”+map.get(key));   

                }         

                                   

                Hashtable tab=new Hashtable();               

                tab.put(“a”, “aaa”);   

                tab.put(“b”, “bbb”);   

                tab.put(“c”, “ccc”);   

                tab.put(“d”, “ddd”);   

                Iterator iterator_1 = tab.keySet().iterator();   

                while (iterator_1.hasNext()) {   

                 Object key = iterator_1.next();   

                 System.out.println(“tab.get(key) is :”+tab.get(key));   

                }            

                   

                TreeMap tmp=new TreeMap();               

                tmp.put(“a”, “aaa”);   

                tmp.put(“b”, “bbb”);   

                tmp.put(“c”, “ccc”);   

                tmp.put(“d”, “ddd”);   

                Iterator iterator_2 = tmp.keySet().iterator();   

                while (iterator_2.hasNext()) {   

                 Object key = iterator_2.next();   

                 System.out.println(“tmp.get(key) is :”+tmp.get(key));   

                }            

            }   

        }   

    輸出結(jié)果如下圖所示

    Feedback

    # re: HashMap,HashTable,TreeMap區(qū)別和用法  回復(fù)  更多評論   

    2012-09-05 11:00 by 打個(gè)
    對規(guī)范地方蝴蝶飛過

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 91成年人免费视频| 69影院毛片免费观看视频在线 | 亚洲第一二三四区| 亚洲精品国产高清在线观看| 无码区日韩特区永久免费系列| 又黄又爽一线毛片免费观看| 亚洲avav天堂av在线网毛片| 美女视频黄的免费视频网页| 久久国产亚洲精品麻豆| 免费观看一区二区三区| 久久精品国产亚洲AV电影 | 美女被免费喷白浆视频| 亚洲高清免费视频| 亚洲丰满熟女一区二区v| 免费无码又爽又刺激聊天APP| 亚洲人成人无码网www电影首页| 在线观看亚洲精品专区| 少妇亚洲免费精品| 丝瓜app免费下载网址进入ios| 四虎影视在线永久免费看黄| 一级毛片人与动免费观看| 最新猫咪www免费人成| 亚洲youwu永久无码精品| 亚洲第一黄片大全| 免费成人在线电影| 亚洲毛片不卡av在线播放一区| 亚洲五月丁香综合视频| 国产成人精品男人免费| 亚洲三级在线播放| 国产成人青青热久免费精品| 亚洲国产成人久久精品app| 国产精品国产午夜免费福利看| 久久精品国产亚洲AV蜜臀色欲| 青青草原1769久久免费播放| 亚洲宅男精品一区在线观看| 免费a级毛片18以上观看精品| 亚洲国产精品嫩草影院| 亚洲午夜久久久久妓女影院| 亚洲阿v天堂在线2017免费| 亚洲国产aⅴ综合网| 色偷偷尼玛图亚洲综合|