一輩子的程序員?

          愛你一生不變-芳芳!
          posts - 27, comments - 15, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          array.vector.map.list的小談

          Posted on 2006-08-30 10:40 boddi 閱讀(584) 評論(0)  編輯  收藏

          array(數組)和Vector是十分相似的Java構件(constructs),兩者全然不同,在選擇使用時應根據各自的功能來確定。

          1、數組:Java arrays的元素個數不能下標越界,從很大程度上保證了Java程序的安全性,而其他一些語言出現這一問題時常導致災難性的后果。
          ??????? Array可以存放Object和基本數據類型,但創建時必須指定數組的大小,并不能再改變。值得注意的是:當Array中的某一元素存放的是Objrct reference?時,Java不會調用默認的構造函數,而是將其初值設為null,當然這跟Java對各類型數據賦默認值的規則是一樣的,對基本數據類型同樣適用。

          2、Vector:對比于Array,當更多的元素被加入進來以至超出其容量時,Vector的size會動態增長,而Array容量是定死的。同時,Vector在刪除一些元素后,其所有下標大于被刪除元素的元素都依次前移,并獲得新下標比原來的小了)。注意:當調用Vector的size()方法時,返回Vector中實際元素的個數。
          ???? Vector內部實際是以Array實現的,也通過元素的整數索引來訪問元素,但它只能存放java.lang.Object對象,不能用于存放基本類型數據,比如要存放一個整數10,得用new Integer(10)構造出一個Integer包裝類對象再放進去。當Vector中的元素個數發生變化時, 其內部的Array必須重新分配并進行拷貝,因此這是一點值得考慮的效率問題。
          ???? Vetor同時也實現了List接口,所以也可以算作Colletion了,只是它還特殊在:Vector is synchronized。即Vetor對象自身實現了同步機制。

          3、ArrayList:實現了List接口,功能與Vetor一樣,只是沒有同步機制,當然元素的訪問方式為從List中繼承而來,可存放任何類型的對象。

          4、HashMap:繼承了Map接口,實現用Keys來存儲和訪問Values,Keys和Values都可以為空,它與Hashtable類的區別在于Hashtable類的Keys不能為null,并Hashtable類有同步機制控制,而HashMap類沒有。
          ????? 在Struts類庫中實現了一個LableValueBean,用Lable(Key)來存儲和訪問Value,很方便。


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


          網站導航:
           
          主站蜘蛛池模板: 关岭| 蒙阴县| 陕西省| 阿合奇县| 桂东县| 瑞昌市| 合肥市| 烟台市| 吉林省| 邯郸市| 吴川市| 故城县| 曲松县| 玉环县| 板桥市| 乐至县| 锡林浩特市| 海原县| 永德县| 尤溪县| 临高县| 文化| 乐清市| 张家界市| 德钦县| 平利县| 景泰县| 宣化县| 永安市| 望江县| 友谊县| 盘山县| 新巴尔虎右旗| 东山县| 二连浩特市| 涟水县| 呼和浩特市| 庄河市| 临沧市| 滨州市| 西丰县|