JAVA多維數(shù)組備考知識點解析_第1頁
JAVA多維數(shù)組備考知識點解析_第2頁
JAVA多維數(shù)組備考知識點解析_第3頁
JAVA多維數(shù)組備考知識點解析_第4頁
JAVA多維數(shù)組備考知識點解析_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

JAVA多維數(shù)組備考知識點解析(一)二維數(shù)組的聲明二維數(shù)組與一維數(shù)組的聲明類似,只是需要用兩個“[]”來表明是二維數(shù)組的聲明,格式如下:數(shù)據(jù)類型數(shù)組名[][];或數(shù)據(jù)類型[][]數(shù)組名;或數(shù)據(jù)類型[]數(shù)組名[];其中:數(shù)據(jù)類型可以是java的基本類型和引用類型,數(shù)組名要求是一個合法的標識符,兩個“[]”,表示是一個二維數(shù)組。(二)二維數(shù)組的初始化同一維數(shù)組一樣,只聲明了數(shù)組,這時候其值為null,要想使用數(shù)組,還需要做初始化工作。數(shù)組初始化為聲明的數(shù)組指定數(shù)組元素個數(shù),為數(shù)組元素分配空間并賦值。數(shù)組初始化可以通過如下幾種方式完成。1.用new關鍵字初始化數(shù)組用關鍵字new初始化數(shù)組時,除了為數(shù)組指定數(shù)組元素個數(shù)、分配存儲空間外,還會為數(shù)組元素按照數(shù)據(jù)類型的不同賦初值。具體如下:若為數(shù)值型,數(shù)組元素的默認值為0,;若為布爾型,數(shù)組元素的默認值為false;若為引用型,數(shù)組元素的默認值為空(null)。(1)先聲明數(shù)組,在初始化數(shù)組。這里實際上是兩條語句,具體格式如下:數(shù)據(jù)類型[][]數(shù)組名;或數(shù)據(jù)類型數(shù)組名[][];數(shù)組名=new數(shù)據(jù)類型[length1][length2];第一條語句是數(shù)組聲明語句,第二條語句則是初始化語句。要求這兩條語句中數(shù)組名、數(shù)據(jù)類型必須一致。Length1指定數(shù)組的行數(shù),length2指定數(shù)組的列數(shù)。數(shù)組的Length1和Length2可以是直接的int類型常數(shù),也可以是已經(jīng)賦值的int類型變量或int類型表達式。例如:intm=3,n=2;int[]a;a=newint[m][n];上面的語句聲明并初始化一個3行兩列的數(shù)組a,同時,根據(jù)默認值的約定,數(shù)組a中的所有元素初值均為0(2)在聲明數(shù)組的同時用new關鍵字初始化數(shù)組。實際上,這種方式是將第一種方式的兩條語句合并為一條語句。格式如下:數(shù)據(jù)類型[][]數(shù)組名=new數(shù)據(jù)類型[length1][length2];或數(shù)據(jù)類型數(shù)組名[][]=new數(shù)據(jù)類型[length1][length2];例如:intm=3,n=2;int[][]a=newint[m][n];2.用一個已經(jīng)初始化的數(shù)組對數(shù)組初始化可以直接使用一個已經(jīng)初始化的數(shù)組對新聲明的數(shù)組進行初始化。格式如下:數(shù)據(jù)類型[][]數(shù)組名=已初始化數(shù)組例如:Int[][]a=newint[10][10];Int[][]b=a;同一維數(shù)組一樣,這種初始化會使得數(shù)組a與b具有相同的存儲地址,a數(shù)組與b數(shù)組指向了同一個物理地址,任何對數(shù)組a的改變都會使數(shù)組b做相應的修改,同樣,任何對數(shù)組b的修改也會使a數(shù)組的內容發(fā)生變化。3.直接指定初值的方式用直接指定初值的方式初始化數(shù)組是指在聲明數(shù)組的同時將數(shù)組元素的初值依次寫入賦值號(=)后的一對大括號({})內,大括號中的每個元素也是一對大括號。如:inta[][]={{1,2},{3,4},{5,6}};這樣就定義了一個3行2列的數(shù)組。(三)不規(guī)則數(shù)組像其他語言一樣,在定義二維數(shù)組時,我們可以使用“inta[][]=newint[3][2]”的方式創(chuàng)建3行2列的`數(shù)組,這樣的數(shù)組是規(guī)則的,與數(shù)學上的矩陣一樣。在java中我們還可以定義列數(shù)不同的數(shù)組,對于列數(shù)不同的數(shù)組稱之為不規(guī)則數(shù)組。不規(guī)則數(shù)組的定義有兩種方式。1.直接指定初值方式如下語句:inta[][]={{1,2,3},{4,5},{6,7,8,9}};就定義了一個不規(guī)則數(shù)組,這樣,數(shù)組中各元素包括:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[2][0],a[2][1],a[2][2],a[2][3],其他元素的訪問則會導致數(shù)組下標異常錯誤,如System.out.println(a[0][3]);System.out.println(a[1][2]);System.out.println(a[1][3]);都會產(chǎn)生異常2.用new關鍵字初始化數(shù)組除了直接指定初值的方式外,還可以使用new關鍵字創(chuàng)建不規(guī)則數(shù)組,如下語句同樣創(chuàng)建了一個不規(guī)則數(shù)組:int[][]arr=newint[3][];arr[0]=newint[3];arr[1]=newint[2];arr[2]=newint[4];這里需要注意的是“int[][]arr=newint[3][];”語句與C++的定義方式正好相反,在C++中,數(shù)組的定義形式為“int[][]arr=newint[][3];”,讀者一定不要混淆。不規(guī)則數(shù)組的好處是可以節(jié)省存儲空間,對于列不是完全相同的時候可以使用,在下面的楊輝三角形的例子中使用的就是不規(guī)則數(shù)組。(四)二維數(shù)組應用1.二維數(shù)組元素的遍歷在一維數(shù)組中,遍歷數(shù)組元素使用如下語句:for(inti=0;iSystem.out.println(a[i]);}在二維數(shù)組中可以使用如下語句遍歷數(shù)組元素:for(inti=0;ifor(intj=0;jSystem.out.print(a[i][j]+'\n');}System.out.println();}特別注意,因為在二維數(shù)組中存在不規(guī)則數(shù)組的情況,所以在訪問時需要使用a[i].length的方式來限定二維數(shù)組第二維的元素個數(shù),否則會發(fā)生數(shù)組下標異常錯誤。2.利用不規(guī)則數(shù)組實現(xiàn)楊輝三角形楊輝三角形,又稱賈憲三角形,帕斯卡三角形,是二項式系數(shù)在三角形中的一種幾何排列。其形式如下:111121133114641我們可以利用java的不規(guī)則數(shù)組來存儲這些信息,其運算規(guī)律為:a[m][n]=a[m-1][n-1]+a[m-1][n];當m=n或者n=0時,楊輝三角形的元素a[m][n]=1;否則,楊輝三角形的元素a[m,n]=a[m-1,n-1]+a[m-1,n]。其中,m,n為三角形的行和列,均從0開始。程序如下:[例5-12]classYangHui{publicvoidpaint(intn){//輸出楊輝三角形的值,n為行數(shù)inta[][]=newint[n][];for(inti=0;ia[i]=newint[i+1];//定義不規(guī)則數(shù)組}for(inti=0;ifor(intj=0;jif(i==j||j==0){a[i][j]=1;}elsea[i][j]=a[i-1][j-1]+a[i-1][j];}}//不規(guī)則數(shù)組的輸出for(inti=0;ifor(intj=0;jSystem.out.print(a[i][j]+"");}System.out.println();//輸出換行}}}publicclassTest5_12{publicstaticvoidmain(String[]args){YangHuiyh=newYangHui();yh.paint(10);}}運行結果如下:11112113311464115101051161520156117213535217118285670562881193684126126843691讀者可以通過yh.paint(n)的方式很方便的輸出具有n行楊輝三角形的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論