二维数组
数组中的嵌套就是二维数组
二维数组的声明
数据类型[ ][ ] 数组名 ; ------推荐
数据类型 数组名 [ ][ ] ;
数据类型 [ ]数组名[ ] ;
//声明二维数组
int[][] arr1;
int arr2 [][] ;//不推荐
int [] arr3 [] ;//不推荐
初始化
动态初始化:
数据类型 [ ][ ] 数组名 = new 数据类型[一维的长度][二维的长度];
------每一个第二位的小数组长度相同
数据类型[ ][ ] 数组名 = new 数据类型[一维的长度][ ] ;
arr[外层数组索引] = new 数据类型 [ 长度 ]
------第二位的每一个小数组的长度可以不同,第二位的小数组还没有创建
二维数组中的数组 相当于一维数组中的元素
//动态初始化
int arr1[][] = new int[3][4];//{{0,0,0,0,},{0,0,0,0},{0,0,0,0}};
int arr2[][] = new int[3][];//{{},{},{}}
arr2[2] = new int[3];//定义arr2数组 索引2 的内层数组//{{0,0,0},{0,0,0},{0,0,0}}
静态初始化:
数据类型[ ][ ] 数组名 = new 数据类型[ ][ ]{{1,2},{1},{1,2,3}…};
数据类型[][] 数组名 = {{1,2},{1},{1,2,3}…};
int arr1[][]=new int[][]{{1,2},{3,4,5},{6}};
int arr2[][]={{1,2},{3,4,5},{6}};
二维数组的遍历
双重for循环嵌套
//二维数组的遍历
int[][] array = {{1,2},{3,4,5},{6,7},{8,9,10}};
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
}
}System.out.print(Arrays.deepToString(array));
//=========================================
for(int[] i:array){
for (int j = 0; j < i.length; j++) {
System.out.print(i[j]+" ");
}
}
//=========================================
for(int[] i:array){
for (int j : i) {
System.out.print(j+" ");
}
}
//=========================================