3.9.3 二維數據創建
二維數組主要用于二維關系表示。
二維數組可以分規則二維數組和不規則二維數組。規則二維數組表示行列數相同的二維數組,不規則二維數組表示行列數不同的二維數組。
1.定義二維數組
熂類型名 [][] 數組名 = new 數據類型[行數][列數];
2.二維數據初始化和遍歷
//規則二維數組
//靜態初始化
int[][] arr0 = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
//動態初始化
int [][] arr = new int[3][4];//3行4列的二維數組
arr[0][0] = 1;arr[0][1] = 2;arr[0][2] = 3;arr[0][3] = 4;
arr[1][0] = 5;arr[1][1] = 6;arr[1][2] = 7;arr[1][3] = 8;
arr[2][0] = 9;arr[2][1] = 10;arr[2][2] = 11;arr[2][3] = 12;
//遍歷二維數組
for(int[] i:arr){ // 遍歷行,每一行是一個一維數組i
for(int j:i){ // 遍歷列
System.out.print(j+" ");
}
System.out.println();
}
用for循環遍歷二維數組,外層循環遍歷行,內層循環遍歷列。
數組名.length 獲取數組長度,即有多少行。
數組名[i].length 獲取第i行數組長度,即有多少列。
//不規則二維組
//靜態初始化
int [][] arrStatic = {{1,2,3},{4,5},{6,7,8,9}};
//動態初始化
int [][] arr = new int[3][];
arr[0] = new int[]{1,2,3,4};
arr[1] = new int[]{5,6};
arr[2] = new int[]{7,8,9};
//遍歷二維數組
for(int i=0;i<arr.length;i++){ //外層循環,遍歷二維數組的行
for(int j=0;j<arr[i].length;j++){ //內層循環,遍歷二維數組的列
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
3.矩陣轉置
將二維數據的行列互換,稱為矩陣轉置。實現代碼如下:

//定義并初始化一個2行3列的矩陣
int a[][]=new int[3][4];
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
a[i][j]=(j+1)+4*i;
System.out.printf("%2d ",a[i][j]);
}
System.out.println(); //換行
}
System.out.println("--------");
//矩矩陣轉置,將矩陣a轉置為矩陣b
int b[][]=new int[4][3];
for(int i=0;i<a.length;i++) //遍歷矩陣a的行
{
for(int j=0;j<a[i].length;j++) //遍歷矩陣a的列
{
b[j][i]=a[i][j]; //矩陣轉置,將a的下標互換后存入b中,連續將b的i列存滿后,a再換行
}
}
//輸出矩矩陣b
for(int[] i:b){
for(int j:i)
{
System.out.printf("%2d ",j);
}
System.out.println(); //換行
}
獨學而無友,則孤陋而寡聞。
浙公網安備 33010602011771號