風(fēng)雨無阻

          Hashtable真的能存儲對象嗎?

           

          看一看下面的很簡單的代碼,先是聲明了一個HashtableStringBuffer對象,然后分四次把StriingBuffer對象放入到Hashtable表中,在每次放入之前都對這個StringBuffer對象append()了一些新的字符串:

          package reference;

          import java.util.*;

          public class HashtableAdd{

              public static void main(String[] args){

                  Hashtable ht = new Hashtable();

                  StringBuffer sb = new StringBuffer();

                  sb.append("abc,");

                  ht.put("1",sb);    

                  sb.append("def,");

                  ht.put("2",sb);

                  sb.append("mno,");

                  ht.put("3",sb);

                  sb.append("xyz.");

                  ht.put("4",sb);

                 

                  int numObj=0;

                  Enumeration it = ht.elements();

                  while(it.hasMoreElements()){

                      System.out.print("get StringBufffer "+(++numObj)+" from Hashtable: ");

                      System.out.println(it.nextElement());

                  }

              }

          }

          如果你認(rèn)為輸出的結(jié)果是:
          get StringBufffer 1 from Hashtable: abc,
          get StringBufffer 2 from Hashtable: abc,def

          get StringBufffer 3 from Hashtable: abc,def,mno,
          get StringBufffer 4 from Hashtable: abc,def,mno,xyz.

          那么你就要回過頭再仔細(xì)看一看上一個問題了,把對象時作為入口參數(shù)傳給函數(shù),實質(zhì)上是傳遞了對象的引用,向Hashtable傳遞StringBuffer對象也是只傳遞了這個StringBuffer對象的引用!每一次向Hashtable表中put一次StringBuffer,并沒有生成新的StringBuffer對象,只是在Hashtable表中又放入了一個指向同一StringBuffer對象的引用而已。

          Hashtable表存儲的任何一個StringBuffer對象(更確切的說應(yīng)該是對象的引用)的改動,實際上都是對同一個"StringBuffer"的改動。所以Hashtable并不能真正存儲能對象,而只能存儲對象的引用。也應(yīng)該知道這條原則對與Hashtable相似的Vector, List, Map, Set等都是一樣的。

          上面的例程的實際輸出的結(jié)果是:

          /* RUN RESULT

          get StringBufffer 1 from Hashtable: abc,def,mno,xyz.

          get StringBufffer 2 from Hashtable: abc,def,mno,xyz.

          get StringBufffer 3 from Hashtable: abc,def,mno,xyz.

          get StringBufffer 4 from Hashtable: abc,def,mno,xyz.

          */

          posted on 2008-03-14 10:45 秋楓故事 閱讀(577) 評論(0)  編輯  收藏


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


          網(wǎng)站導(dǎo)航:
           
          <2008年3月>
          2425262728291
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          新聞檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 罗江县| 乐安县| 安吉县| 永城市| 阜新市| 荣昌县| 金溪县| 武汉市| 田东县| 哈密市| 临西县| 汉沽区| 新郑市| 上思县| 咸丰县| 汕尾市| 石景山区| 和林格尔县| 高密市| 全椒县| 新河县| 渭源县| 广安市| 福安市| 曲沃县| 石阡县| 威海市| 新巴尔虎右旗| 盱眙县| 吉木萨尔县| 谢通门县| 忻城县| 延边| 泗阳县| 色达县| 宝鸡市| 孟连| 灵台县| 陵水| 永年县| 沙洋县|