999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

開發Java動態數組

2007-01-01 00:00:00藍雯飛
計算機時代 2007年3期

摘要:在編寫Java程序時,數組是常用的一種數據類型,然而在實際使用時有許多不便之處。為此,文章討論了代替Java傳統數組的動態數組的設計及實現過程,并舉例說明了動態數組類的使用方法。

關鍵詞:Java;動態數組;類;方法

O引言

熟悉Java編程的人員都知道,在創建Java數組時,必須用表達式指定其大小(如:int a[]=new int[3])或通過初始化(如:int a[]={1,2,31)隱式指定其大小,數組對象一旦創建,長度就不可改變。在實際使用這種數組時會有一些問題,如編譯器不檢查數組下標是否越界,在程序運行過程中不能改變數組的大小,不能進行數組拷貝、賦值等操作,給編程和調試帶來了諸多的不便。為此,作者利用Java自身的特點構造了一個可動態創建、操作較為齊全的動態數組類,以解決Java傳統數組的不足。

1構造一個動態數組類

1.1定義一個動態數組類DynamicArray

public class DynamicArray,/以下代碼在JDKl.4.2下調試通過

(pnvate Object elems口:

private Int length:

pubIic DynamicArray(){elems=1:Iength=O:}

pubJjc jnt getLength()

{if(elems==1)return 0:

else return length:

}

}

在DynamicArray類中,用elcms數組來存儲Object類型的對象元素,由于Java中object是其他所有類的超類,所以可以通過0bject類型的引用來指向子類的對象。字段lengm用來得到當前elcms中存儲元素的個數。無參數構造方法將elems初始化為1。

1、2在DynamicArray類中增加添加、刪除、獲取數組元素的方法

1.2.1添加數組元素的方法

pubIjc void appendEIem(Object elem)

{if(eIems==1){elems=new O bject[1];ems[O]=elem:)

//若數組為空則新創建一個數組

else//否則建立一個新數組比原數組長1,將原數組元素拷貝到

新數組并增加新元素

{Object temp~=new Object[length+1];

for(int i=0;i

tem p[length]=eIem;

elems=temp;

}

Iength++:

}

1.2.2插入數組元素的方法

public void insertElem(O bject elem)

{if(elems==1)(elems=new Object[1];elems[0]=elem:}

//若數組為空則新創建一個數組

else//否則建立一個新數組比原數組長1,增加新元素并將原數

組元素拷貝到新數組

{Object tempN=new O bject[Iength+1]:

ternp[0]=elem;

for(int i=1;i

elems=temp;

}

length++:

}

1.2.3刪除指定下標元素的方法

pubIic boolean delElem(int index)

{if(elems==1)return 1;//如果沒有數組元素

if(index>=O&index1)

//如果下標沒有越界

{Object temp=new O bject[Iength-1]:

for(int i=0:i

for(int i=index+1;i

elems=temp;length--;

return true;

}

if(index==Olength==1){elems=1;length--;return true;)

return flaIse:

}

1.2.4讀取指定下標元素的方法

public Object getElem(Int index)

{if(elems==1)return 1;

else

if(index>=Oindex

else return nuIl:

}

1.2.5清空數組的方法

public void clearAII()

(elems=1;length=0:)

2使用動態數組類

(1)創建一個動態數組

DynamicArray aArray:=new DynamicArray():

(2)添加一個元素

aArray.append~em(new Integer(4)):

(3)插入一個元素

aArray.insertElem(new Double(10.4)):

(4)取得一個數組元素

Integer i=(Integer)aArray.getElem(1):

需要注意的是,在取得某一數組元素時,應當根據其類型進行強制類型轉換。

(5)刪除指定的元素

boolean bl=aArray.delElem(0);

(6)清空數組

aArray.clearAIl()://清空后可以繼續增加新元素

3結束語

根據需求,還可以為動態數組類DynamicArray添加其它有意義的方法,如數組的排序、求最大數、求最小數等,那么,它將變成一個功能強大、使用靈活、方便于各種應用的數組類了。

在c#和Java中系統本身提供了一些列表類,其設計原理與本文思路相同,充分理解本文動態數組的原理對于提高Java類庫的認知具有重要意義。

筆者在多年從事Java教學和軟件開發工作中,深感Java普通數組的不足,從而開發了動態數組類DynamicArray,希望能給Java編程人員一些啟示。本文設計的動態數組已經在財務管理系統、閱卷系統等多個應用系統中使用,使用效果較好。

(注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。)

主站蜘蛛池模板: 国产成人毛片| 欧美日韩福利| 国产免费a级片| 欧美日韩精品一区二区视频| 日韩精品成人网页视频在线| 国产一级二级在线观看| 亚洲乱强伦| 熟女日韩精品2区| 国产精品欧美激情| 国产99视频免费精品是看6| 婷婷午夜影院| 国产女人水多毛片18| 99热国产在线精品99| 国产成人91精品| 青青青视频91在线 | 日韩久草视频| 一级毛片免费观看久| 欧美精品一区在线看| 99色亚洲国产精品11p| 欧美国产日韩在线观看| 久久五月视频| 亚洲日韩精品综合在线一区二区| 亚洲中文字幕97久久精品少妇| 凹凸国产熟女精品视频| 黄色网址免费在线| 国产在线小视频| 国产精品吹潮在线观看中文| 国产精品美女自慰喷水| 国产成人a在线观看视频| 男女精品视频| 婷婷久久综合九色综合88| 久草热视频在线| 欧美成在线视频| 国产成人精品第一区二区| 亚洲视频免费播放| 欧美精品黑人粗大| 亚洲动漫h| 亚洲天堂在线视频| 免费99精品国产自在现线| 久久男人视频| 国产精品3p视频| 日本国产精品一区久久久| 中国国产一级毛片| 精品国产aⅴ一区二区三区| 天天操天天噜| 中文成人无码国产亚洲| 国产福利2021最新在线观看| 伊人色综合久久天天| 日韩精品毛片人妻AV不卡| 91精品专区国产盗摄| 免费在线一区| 久久久久人妻一区精品色奶水| 亚洲无码电影| 国产簧片免费在线播放| 久久久久亚洲精品成人网| 亚洲日本www| 精品人妻系列无码专区久久| 伊人成人在线| 精品超清无码视频在线观看| 免费视频在线2021入口| 国产精品亚洲欧美日韩久久| 欧美中文字幕一区| 九九热精品免费视频| 久久这里只有精品免费| 黄色网页在线播放| 天堂成人av| 老司国产精品视频| 91美女在线| 国产理论一区| 91在线视频福利| 在线国产91| 欧美一级高清免费a| a级毛片免费看| 国产精品视频导航| 亚洲综合在线网| 欧美亚洲一二三区| 国产18页| 亚洲人成影院午夜网站| 最新日韩AV网址在线观看| 午夜视频免费试看| 国产正在播放| 免费一级毛片在线播放傲雪网|