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(); //换行
}
标签:arr,遍历,int,二维,6.2,数组,多维,new
From: https://www.cnblogs.com/bcd589/p/18438285