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

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

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

    Java學習

    java,spring,structs,hibernate,jsf,ireport,jfreechart,jasperreport,tomcat,jboss -----本博客已經搬家了,新的地址是 http://www.javaly.cn 如果有對文章有任何疑問或者有任何不懂的地方,歡迎到www.javaly.cn (Java樂園)指出,我會盡力幫助解決。一起進步

     

    HashMap和Hashtable的區(qū)別 以及Hashmap的用法

    Hashtable和HashMap類有三個重要的不同之處。第一個不同主要是歷史原因。Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進的Map接口的一個實現(xiàn)。

    也許最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。這就意味著,雖然你可以不用采取任何特殊的行為就可以在一個多線程 的應用程序中用一個Hashtable,但你必須同樣地為一個HashMap提供外同步。一個方便的方法就是利用Collections類的靜態(tài)的 synchronizedMap()方法,它創(chuàng)建一個線程安全的Map對象,并把它作為一個封裝的對象來返回。這個對象的方法可以讓你同步訪問潛在的 HashMap。這么做的結果就是當你不需要同步時,你不能切斷Hashtable中的同步(比如在一個單線程的應用程序中),而且同步增加了很多處理費 用。

    第三點不同是,只有HashMap可以讓你將空值作為一個表的條目的key或value。HashMap中只有一條記 錄可以是一個空的key,但任意數(shù)量的條目可以是空的value。這就是說,如果在表中沒有發(fā)現(xiàn)搜索鍵,或者如果發(fā)現(xiàn)了搜索鍵,但它是一個空的值,那么 get()將返回null。如果有必要,用containKey()方法來區(qū)別這兩種情況。

    一些資料建議,當需要同步時, 用Hashtable,反之用HashMap。但是,因為在需要時,HashMap可以被同步,HashMap的功能比Hashtable的功能更多,而 且它不是基于一個陳舊的類的,所以有人認為,在各種情況下,HashMap都優(yōu)先于Hashtable。

    關于Properties
    有時侯,你可能想用一個hashtable來映射key的字符串到value的字符串。DOS、Windows和Unix中的環(huán)境字符串就有一些例子, 如key的字符串PATH被映射到value的字符串C:\WINDOWS;C:\WINDOWS\SYSTEM。Hashtables是表示這些的一個 簡單的方法,但Java提供了另外一種方法。

    Java.util.Properties類是Hashtable的一個子類,設計用于String keys和values。Properties對象的用法同Hashtable的用法相象,但是類增加了兩個節(jié)省時間的方法,你應該知道。

    Store()方法把一個Properties對象的內容以一種可讀的形式保存到一個文件中。Load()方法正好相反,用來讀取文件,并設定Properties對象來包含keys和values。

    注意,因為Properties擴展了Hashtable,你可以用超類的put()方法來添加不是String對象的keys和values。這是不 可取的。另外,如果你將store()用于一個不包含String對象的Properties對象,store()將失敗。作為put()和get()的 替代,你應該用setProperty()和getProperty(),它們用String參數(shù)。
     

    package com.neusoft.edu.dcp.uim;

    import java.util.HashMap;
    import java.util.Hashtable;
    import java.util.Iterator;
    import java.util.LinkedHashMap;
    import java.util.Map;
    import java.util.TreeMap;

    public class HashMapDemo {
    //初始化
    private void init(Map map,String kind)
    {
       if(map != null)
       {
        for(int i=1; i<6; i++)
        {
         map.put(String.valueOf(i),kind+i);
        }
       }
    }

    //結果輸出
    private void outPut(Map map)
    {
       if(map != null)
       {
        Object key    = null;
        Object value = null;
        Iterator iterater = map.keySet().iterator();
        while(iterater.hasNext())
        {
         key = iterater.next();
         value = map.get(key);
         System.out.print(key+": "+value+"\t");
        }
        System.out.println("\n");
       }
    }
    public static void main(String args[])
    {
        HashMap hashmap = new HashMap();
        hashmap.put("x", "1");
        hashmap.put("u", "2");
        hashmap.put("z", "3");
        hashmap.put("h", "4");
        hashmap.put("a", "5");
        hashmap.put("o", "6");
        hashmap.put("g", "7");
        hashmap.put("u", "8");
        hashmap.put("a", "9");
        hashmap.put("n", "10");
        hashmap.put("g", "11");
      
         Object key    = null;
         Object value = null;
         Iterator iterater = hashmap.keySet().iterator();
         while(iterater.hasNext())
         {
          key = iterater.next();
          value = hashmap.get(key);
          System.out.print(key+": "+value+"\t");
         }
         System.out.println("\n");
      
    }
    //聲明HashMap對象
    private void setHashMap()
    {
       HashMap hashMap = new HashMap();
       init(hashMap,"HashMap");
       hashMap.put(null,"鍵值為空");
       hashMap.put("值為空",null);
       System.out.println("這是HashMap對象的鍵與值:");
       outPut(hashMap);
    }
         //聲明Hashtable對象
    private void setHashtable(){
       Hashtable hashtable = new Hashtable();
       init(hashtable,"Hashtable");
       //hashtable.put(null,"鍵值為空"); Hashtable不允許鍵或值為null;
       //hashtable.put("值為空",null);
       System.out.println("這是Hashtable對象的鍵與值:");
       outPut(hashtable);
    }
         //聲明LinkedHashMap對象
    private void setLinkedHashMap(){
       LinkedHashMap linkedHashMap = new LinkedHashMap();
       init(linkedHashMap,"LinkedHashMap");
       linkedHashMap.put(null,"鍵值為空");
       linkedHashMap.put("值為空",null);
       System.out.println("這是LinkedHashMap對象的鍵與值:");
       outPut(linkedHashMap);
    }
         //聲明TreeMap對象
    private void setTreeMap(){
       TreeMap treeMap = new TreeMap();
       //TreeMap treeMap = new TreeMap(new MySort());//按自定義的方式排序
       init(treeMap,"TreeMap");
       treeMap.put("0", "后插入的值");
       //treeMap.put(null,"鍵值為空"); TreeMap不允許鍵或值為null
       //treeMap.put("值為空",null);
       System.out.println("這是TreeMap對象的鍵與值:");
       outPut(treeMap);
    }
    // public static void main(String[] args){
    //   HashMapDemo tm = new HashMapDemo();
    //   tm.setHashMap();
    //   tm.setHashtable();
    //   tm.setLinkedHashMap();
    //   tm.setTreeMap();
    //  
    //   Map hashMap = new HashMap();
    //   hashMap.put(null, "鍵值為null");
    //   hashMap.put("值為null", null);
    //   System.out.println("新建HashMap對象元素的記錄數(shù)是:"+hashMap.size());  
    //   hashMap.remove(null);
    //   System.out.println("刪除鍵值為null的HashMap對象元素的記錄數(shù)是:"+hashMap.size());  
    // }
    }

    posted on 2008-11-08 14:52 找個美女做老婆 閱讀(2165) 評論(0)  編輯  收藏


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


    網站導航:
     

    導航

    統(tǒng)計

    公告

    本blog已經搬到新家了, 新家:www.javaly.cn
     http://www.javaly.cn

    常用鏈接

    留言簿(6)

    隨筆檔案

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 毛片亚洲AV无码精品国产午夜| 亚洲国产美女精品久久| 亚洲精华国产精华精华液| 无码一区二区三区AV免费| 亚洲AV综合色区无码二区爱AV| 免免费国产AAAAA片| 国产成人精品日本亚洲网址| 免费av欧美国产在钱| 中文字幕精品三区无码亚洲 | 十九岁在线观看免费完整版电影| 国产成人精品日本亚洲专区61| 一级毛片免费不卡| 亚洲乱码中文论理电影| 99久久久精品免费观看国产| 亚洲第一男人天堂| 在线免费观看视频你懂的| 特级毛片全部免费播放| 精品国产香蕉伊思人在线在线亚洲一区二区 | 无码国产精品一区二区免费3p| 久久精品九九亚洲精品| 最近中文字幕免费mv视频8| 在线A亚洲老鸭窝天堂| 在线观看特色大片免费网站| 亚洲视频国产视频| 18禁超污无遮挡无码免费网站国产| 亚洲乱妇老熟女爽到高潮的片| 又粗又硬免费毛片| 久久久国产精品无码免费专区| youjizz亚洲| 亚洲第一区精品日韩在线播放| 免费视频精品一区二区三区| 国产色在线|亚洲| 亚洲国产精品第一区二区三区| 久久久久久AV无码免费网站下载 | 国产亚洲视频在线观看网址| 亚洲午夜无码久久久久| 亚洲性线免费观看视频成熟| 一级毛片一级毛片免费毛片| 亚洲不卡1卡2卡三卡2021麻豆| 亚洲 综合 国产 欧洲 丝袜| 曰批视频免费40分钟试看天天|