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| 亚洲成人黄色网址| 国产欧美精品一区aⅴ影院| 国产亚洲精品自在久久不卡 | 日韩第八页| 国产最爽的乱婬视频国语对白 | 97人人模人人爽人人喊小说| 青草娱乐极品免费视频| 色综合中文综合网| 亚洲人成日本在线观看| 成人福利在线免费观看| 国产成人高清亚洲一区久久| 欧美专区日韩专区| 成人福利视频网| 久久人午夜亚洲精品无码区| 亚洲最新网址| 中文字幕在线看| 99re66精品视频在线观看| 亚洲中文字幕手机在线第一页| 免费网站成人亚洲| a免费毛片在线播放| 中文一区二区视频| 午夜精品区| 久久这里只精品热免费99| 国产手机在线小视频免费观看 | 狠狠色综合网| 草草线在成年免费视频2| 国产人成网线在线播放va| 呦视频在线一区二区三区| 亚洲精品成人片在线播放| 国产精品永久在线| 香蕉eeww99国产在线观看| 亚洲精品第五页| 精品国产香蕉伊思人在线| 亚洲天堂久久| 亚洲最新地址| 日本91视频| 久久精品无码中文字幕| 国产又粗又爽视频| 激情视频综合网| 啪啪国产视频| 精品国产免费观看| 婷婷成人综合| 国产美女久久久久不卡| 国产色偷丝袜婷婷无码麻豆制服| 亚洲另类第一页| 国产日韩丝袜一二三区| 青青国产视频| 久热中文字幕在线| 蜜桃视频一区| 在线欧美一区| 欧美成人第一页| 久爱午夜精品免费视频| 国产成人精品日本亚洲77美色| hezyo加勒比一区二区三区| 国产成人高精品免费视频| 国禁国产you女视频网站| 久久精品丝袜| 国产精品久久久久婷婷五月| 青青草国产精品久久久久| 国产视频一二三区| 国产成人综合久久精品尤物| 久久狠狠色噜噜狠狠狠狠97视色 | 手机在线免费不卡一区二| 999精品在线视频| 91青青草视频| 国产9191精品免费观看| 国产高清在线观看| 午夜福利亚洲精品| 日本久久免费| 欧美激情二区三区| 欧美精品高清| 日韩123欧美字幕| 色香蕉影院| 91精品免费高清在线| 伊大人香蕉久久网欧美| www亚洲精品| 国产一在线| 美女国内精品自产拍在线播放 | 国产欧美日韩精品综合在线| 热这里只有精品国产热门精品| 亚洲国产日韩欧美在线|