多维数组
直到现在,数组都是在一行中存储值的一维数组。
多维数组是二维或更多维数组的实现。
一个int类型的一维数组存放若干个int类型的变量,
一个int[]类型的二维数组存储了若干个int[]类型的一维数组。
换句话说,N维数组是包含N-1维数组的数组。 二维
声明
数据类型[ ] [ ]数组变量名称= 新数据类型[元素数] [元素数] ;
3D案例
数据类型[ ] [ ] [ ]数组变量名= 新数据类型[元素个数] [元素个数] [元素个数] ;
初始化
二维案例
数据类型[ ] [ ]数组变量名= { {元素,元素,元素,元素} , {元素,元素,元素,元素} } ;
3D案例
数据类型[ ] [ ]数组变量名= { { { element , element , element } , { element , element , element } } , { { element , element , element } , { element , element , element } } , { { element ,元素,元素} , {元素,元素,元素}}};
即使维数如上所示增加,书写规则保持不变。
逐行初始化二维数组
变量名[ Index ] = New int [ ] { elements , elements , elements , elements } ;
样本
public class ArraySample {
public static void main(String[] args) {
int [][] arr1 = new int[2][3];
arr1[0] = new int[] {1,2,3};
arr1[1] = new int[] {4,5,6};
int [][] arr2 = {{1,2,3} , {4,5,6}};
int[][][] arr3 = new int [2][2][2];
arr3[0] = new int [][] {{1,2} ,{3,4}};
arr3[1] = new int [][] {{5,6} ,{7,8}};
int[][][] arr4 = {{{1,2} ,{3,4}},{{5,6} ,{7,8}}};
int[][] arr5 = new int [5][5];
for(int i = 0; i < arr5.length; i++) {
for(int j = 0; j < arr5[i].length; j++) {
arr5[i][j] = i+j;
}
}
}
}
public class ArraySample {
public static void main(String[] args) {
int[][] arr = new int[5][5];
int i = 0;
int j = 0;
for(int[] array : arr) {
for(int value : array) {
arr[i][j] = 1;
j++;
}
i++;
}
for(int[] array : arr) {
for(int value : array) {
System.out.print(value);
}
System.out.println();
}
}
} }
一个int类型的一维数组可以输出多个int变量。
同样,一个二维数组可以产生多个一维数组。
一维数组中的一个元素是变量,而二维数组中的一个元素是一维数组。
也就是说,如果要输出二维数组中的一个变量,就需要输出二维数组元素的元素。
如上所述,我写了 arr[0][0] 来获取 arr[0] 数组的第 0 个索引元素。
样本
public class ArraySample {
public static void main (String[] args) {
int a[][] = new int [5][5];
for (int i=0; i<a.length; i++ ) {
for(int j=0;j<a[i].length;j++) {
if (i%2==0&&j%2==0) {
a[i][j]= 1;
}
}
}
for(int [] arr : a) {
for(int value : arr) {
System.out.print(value +" ");
}
System.out.println();
}
}
}