二维数组其实是一位数组的嵌套(每一行看做一个内层的一维数组)
两种初始化形式
格式1: 动态初始化
数据类型 数组名 [ ][ ] = new 数据类型[m][n]
数据类型 [ ][ ] 数组名 = new 数据类型[m][n]
数据类型 [ ] 数组名 [ ] = new 数据类型[m][n]
举例:int [ ][ ] arr=new int [5][3]; 也可以理解为“5行3例”
格式2: 静态初始化
数据类型 [ ][ ] 数组名 = {{元素1,元素2…},{元素1,元素2…},{元素1,元素2…}…};
举例:int [ ][ ] arr={{22,15,32,20,18},{12,21,25,19,33},{14,58,34,24,66},};
静态初始化可用于不规则二维数组的初始化`
public static void main(String[]args){
int [][] arr=new int[][]{{4,5,6,8},{2,3},{1,6,9}};
System.out.println(arr.length);//输出行数
System.out.println(arr[0].length);//输出列数
}
输出结果:
举例:实现一个M*N的二维数组的转置并输出:
public static void main(String[]args){
int [][] arr=new int[][]{{4,5,6},{2,3,9}};
int [][]arrtrans=new int[arr[0].length][arr.length];
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[0].length;j++){
arrtrans[j][i]=arr[i][j];
}
}
for(int i=0;i<arrtrans.length;i++){
for(int j=0;j<arrtrans[0].length;j++){
System.out.print(arrtrans[i][j]);
}
System.out.println();
}
}
二维数组的遍历
1.普通for循环:
int[][] chessArr1=new int[11][11];
chessArr1[1][2]=1;
chessArr1[2][4]=2;
for(int i=0;i<chessArr1.length;i++){ //先遍历行
for(int j=0;j<chessArr1[i].length;j++){ //在根据每一行,逐一遍历各个列
System.out.print(chessArr1[i][j]+"\t");//从遍历的行和列获取二维表的元素内容。
}
System.out.println();
}
————————————————
2.增强for循环:
for(int[] row:chessArr1) {//从每一行中获取元素内容
for(int data:row){//从遍历的每行中,在逐个遍历每一列的元素。
System.out.printf("%d\t",data);//这样就获得了二维表的每一个元素的内容
}
System.out.println();
}
————————————————
原文链接:https://blog.csdn.net/weixin_36564655/article/details/79615479
原文链接:https://blog.csdn.net/zhang6132326/article/details/102936984