詳談JAVA一維和多維數(shù)組
java語(yǔ)言中,數(shù)組是一種最簡(jiǎn)單的復(fù)合數(shù)據(jù)類型。數(shù)組是有序數(shù)據(jù)的集合,數(shù)組中的每個(gè)元素具有相同的數(shù)據(jù)類型,可以用一個(gè)統(tǒng)一的數(shù)組名和下標(biāo)來(lái)唯一地確定數(shù)組中的元素。數(shù)組有一維數(shù)組和多維數(shù)組。
1.一維數(shù)組的定義
- type arrayName[ ];
類型(type)可以為Java中任意的數(shù)據(jù)類型,包括簡(jiǎn)單類型和復(fù)合類型。
例如:
- int intArray[ ];
- Date dateArray[];
2.一維數(shù)組的初始化
(1) 靜態(tài)初始化
- int intArray[]={1,2,3,4};
- String stringArray[]={"abc", "How", "you"};
(2) 動(dòng)態(tài)初始化
1)簡(jiǎn)單類型的數(shù)組
- int intArray[];
- intArray = new int[5];
2)復(fù)合類型的數(shù)組
- String stringArray[ ];
- String stringArray = new String[3];/*為數(shù)組中每個(gè)元素開(kāi)辟引用 空間(32位) */
- stringArray[0]= new String("How");//為***個(gè)數(shù)組元素開(kāi)辟空間
- stringArray[1]= new String("are");//為第二個(gè)數(shù)組元素開(kāi)辟空間
- stringArray[2]= new String("you");// 為第三個(gè)數(shù)組元素開(kāi)辟空間
3.一維數(shù)組元素的引用
數(shù)組元素的引用方式為:
- arrayName[index]
index為數(shù)組下標(biāo),它可以為整型常數(shù)或表達(dá)式,下標(biāo)從0開(kāi)始。每個(gè)數(shù)組都有一個(gè)屬性length指明它的長(zhǎng)度,例如:intArray.length指明數(shù)組intArray的長(zhǎng)度。
多維數(shù)組
Java語(yǔ)言中,多維數(shù)組被看作數(shù)組的數(shù)組。
1.二維數(shù)組的定義
- type arrayName[ ][ ];
- type [ ][ ]arrayName;
2.二維數(shù)組的初始化
(1) 靜態(tài)初始化
- int intArray[ ][ ]={{1,2},{2,3},{3,4,5}};
Java語(yǔ)言中,由于把二維數(shù)組看作是數(shù)組的數(shù)組,數(shù)組空間不是連續(xù)分配的,所以不要求二維數(shù)組每一維的大小相同。
(2) 動(dòng)態(tài)初始化
1) 直接為每一維分配空間,格式如下:
- arrayName = new type[arrayLength1][arrayLength2];
- int a[ ][ ] = new int[2][3];
2) 從***維開(kāi)始,分別為每一維分配空間:
- arrayName = new type[arrayLength1][ ];
- arrayName[0] = new type[arrayLength20];
- arrayName[1] = new type[arrayLength21];
- …
- arrayName[arrayLength1-1] = new type[arrayLength2n];
3) 例: 二維簡(jiǎn)單數(shù)據(jù)類型數(shù)組的動(dòng)態(tài)初始化如下,
- int a[ ][ ] = new int[2][ ];
- a[0] = new int[3];
- a[1] = new int[5];
對(duì)二維復(fù)合數(shù)據(jù)類型的數(shù)組,必須首先為***維分配引用空間,然后再順次為低維分配空間。而且,必須為每個(gè)數(shù)組元素單獨(dú)分配空間。
例如:
- String s[ ][ ] = new String[2][ ];
- s[0]= new String[2];//為***維分配引用空間
- s[1]= new String[2]; //為***維分配引用空間
- s[0][0]= new String("Good");// 為每個(gè)數(shù)組元素單獨(dú)分配空間
- s[0][1]= new String("Luck");// 為每個(gè)數(shù)組元素單獨(dú)分配空間
- s[1][0]= new String("to");// 為每個(gè)數(shù)組元素單獨(dú)分配空間
- s[1][1]= new String("You");// 為每個(gè)數(shù)組元素單獨(dú)分配空間
3.二維數(shù)組元素的引用
對(duì)二維數(shù)組中的每個(gè)元素,引用方式為:arrayName[index1][index2]
例如:
- num[1][0];
4.二維數(shù)組舉例:
【例】?jī)蓚€(gè)矩陣相乘
- public class MatrixMultiply{
- public static void main(String args[]){
- int i,j,k;
- int a[][]=new int [2][3]; //動(dòng)態(tài)初始化一個(gè)二維數(shù)組
- int b[][]={{1,5,2,8},{5,9,10,-3},{2,7,-5,-18}};//靜態(tài)初始化
- 一個(gè)二維數(shù)組
- int c[][]=new int[2][4]; //動(dòng)態(tài)初始化一個(gè)二維數(shù)組
- for (i=0;i<2;i++)
- for (j=0; j<3 ;j++)
- a[i][j]=(i+1)*(j+2);
- for (i=0;i<2;i++){
- for (j=0;j<4;j++){
- c[i][j]=0;
- for(k=0;k<3;k++)
- c[i][j]+=a[i][k]*b[k][j];
- }
- }
- System.out.println("*******Matrix C********");//打印Matrix C標(biāo)記
- for(i=0;i<2;i++){
- for (j=0;j<4;j++)
- System.out.println(c[i][j]+" ");
- System.out.println();
- }
- }
- }
希望對(duì)你有幫助。
【編輯推薦】