精品国产亚洲一区二区三区,男女作爱在线观看免费网站,欧美的又大又长做禁片A片,97国产精品人妻无码久久久

  • 相關(guān)軟件
    >Java的數(shù)組(Array)、Vector、ArrayList、HashMap的異同 創(chuàng)建者:webmaster 更新時間:2005-05-31 11:48

    array(數(shù)組)和Vector是十分相似的Java構(gòu)件(constructs),兩者全然不同,在選擇使用時應(yīng)根據(jù)各自的功能來確定。
    1、數(shù)組:Java arrays的元素個數(shù)不能下標越界,從很大程度上保證了Java程序的安全性,而其他一些語言出現(xiàn)這一問題時常導(dǎo)致災(zāi)難性的后果。
        Array可以存放Object和基本數(shù)據(jù)類型,但創(chuàng)建時必須指定數(shù)組的大小,并不能再改變。值得注意的是:當Array中的某一元素存放的是Objrct reference 時,Java不會調(diào)用默認的構(gòu)造函數(shù),而是將其初值設(shè)為null,當然這跟Java對各類型數(shù)據(jù)賦默認值的規(guī)則是一樣的,對基本數(shù)據(jù)類型同樣適用。


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

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

    4、HashMap:繼承了Map接口,實現(xiàn)用Keys來存儲和訪問Values,Keys和Values都可以為空,它與Hashtable類的區(qū)別在于Hashtable類的Keys不能為null,并Hashtable類有同步機制控制,而HashMap類沒有。
        在Struts類庫中實現(xiàn)了一個LableValueBean,用Lable(Key)來存儲和訪問Value,很方便。
    相關(guān)文章
    本頁查看次數(shù):