資源描述:
《java數(shù)組之二維數(shù)組.docx》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、數(shù)組的元素也可以是數(shù)組,每個數(shù)組的一個元素都是由一個一維數(shù)組構(gòu)成,被稱為二維數(shù)組。同樣,多維數(shù)組可以看作是數(shù)組的數(shù)組,即N維數(shù)組的每一個元素就是一個N-1維數(shù)組。如:三維數(shù)組中的每一個元素都是一個二維數(shù)組。多維數(shù)組的定義即初始化與二維數(shù)組的基本類似,因此本節(jié)主要講述二維數(shù)組。1、二維數(shù)組的聲明??二維數(shù)組聲明的一般格式如下:??數(shù)據(jù)類型數(shù)組名[][];??或者格式如下:??數(shù)據(jù)類型[][]數(shù)組名;??其中數(shù)據(jù)類型與一維數(shù)組的相同,它既可以是基本數(shù)據(jù)類型,也可以是復(fù)合數(shù)據(jù)類型,數(shù)組名可以是任意合法的變量名。下面是數(shù)組聲明舉例。??charch[][];??double[][]d;??Strin
2、g[][]str;??與一維數(shù)組的聲明相同,二維數(shù)組也不需要規(guī)定其中任意一維的長度,下面的聲明都是不合法的。??charch[4][];??double[][5]d;??String[6][7]str;2、??二維數(shù)組的初始化??二維數(shù)組的初始化也分為直接初始化和動態(tài)初始化兩種方式。直接初始化必須在聲明時開始,如下??··??124面的例子所示。??intarray[][]={{1,2},{2,4},{4,8}};??二維數(shù)組的動態(tài)初始化又可分為兩種方式:一種是直接規(guī)定每一維的長度,并分配所需的內(nèi)存空間,另一種是從高維開始,分別為每一維規(guī)定長度并分配內(nèi)存空間。??直接為每一維分配內(nèi)存的格式如
3、下:??變量名=new數(shù)據(jù)類型[二維長度][一維長度];??其中二維長度和一維長度都是大于0的整數(shù),如下所示。??intarray[][];??array=newint[3][5];??array是一個二維數(shù)組,二維長度為3,array[0]、array[1]、array[2]都是一維數(shù)組,長度都是5。分別分配內(nèi)存格式如下:??變量名=new數(shù)據(jù)類型[二維長度][];??變量名[0]=new數(shù)據(jù)類型[一維長度0];??變量名[1]=new數(shù)據(jù)類型[一維長度1];??變量名[2]=new數(shù)據(jù)類型[一維長度2];??...??變量名[二維長度-1]=new數(shù)據(jù)類型[一維長度n];??下面是一個二
4、維數(shù)組初始化的實例。??Intarray[][];????//聲明int類型二維數(shù)組array??A=newint[3][];????//為二維分配內(nèi)存空間??A[0]=newint[5];??//為A[0]的一維分配內(nèi)存空間??A[1]=newint[5];??//為A[1]的一維分配內(nèi)存空間??A[2]=newint[5];??//為A[2]的一維分配內(nèi)存空間??注意:Java語言不要求多維數(shù)組中的每一維長度相同,即上面格式中一維長度0、一維長度1….一維長度n的值可能不同,這點與C/C++是不同的。3、??二維數(shù)組的空間模型??多維數(shù)組中高維的每一個元素都是一個低維數(shù)組。事實上,數(shù)組本
5、身也是一個對象,它也是通過地址引用控制的。在高維元素中,每一個元素上保存的是一個低維數(shù)組的地址。4、二維數(shù)組的使用??多維數(shù)組比一維數(shù)組更有用,尤其是二維數(shù)組在矩陣運算中使用非常廣泛。矩陣運算包括矩陣的加法、減法、乘法、除法、轉(zhuǎn)置等。這些矩陣運算都可以使用二維數(shù)組表示和運算。本節(jié)將給出如下矩陣,通過程序?qū)崿F(xiàn)矩陣的轉(zhuǎn)置。??31??45??56??71??47??89??90??32??56??78??90??24??轉(zhuǎn)置后變成如下矩陣:??31??47??56??45??89??78??56??90??90??71??32??24??實現(xiàn)上面二維數(shù)組轉(zhuǎn)置程序如下:??01??//程序6.5?
6、?MatricesInverted.java????二維數(shù)組的應(yīng)用??02??importjava.util.Scanner;??03??publicclassMatricesInverted??04??{??05??publicstaticvoidmain(Stringargs[])??06??{??07????intmatricesa[][]={{31,45,56,71},{47,89,90,32},{56,78,90,24}};????//聲明并初始化整型二維變量??08????System.out.println("轉(zhuǎn)置前的矩陣如下:");????//輸出字符串??09????for
7、(inti=0;i