二维数组:存储的元素是一维数组的数组;
二维数组的声明:
数据类型 数组名[][];
数据类型 []数组名[];
数据类型 [][]数组名;
double [][] dArr;
double [] dArr1 [];
double dArr2 [][];
System.out.println("------------");
int arr[] = {10,20,30};
System.out.println("arr = " + arr);
int [][] arr1 = {{2,3},{10,20}};
System.out.println("arr1 = " + arr1);
二维数组初始化
二维数组的初识化:
静态初始化
数据类型[][] 数组名 = {{元素...},{元素...}};数据类型[][] 数组名 = new 数据类型[][]{{元素...},{元素...}}; 可以分开写
动态初始化
注意:
1.二维数组的长度 一维数组的个数
2.访问二维数组的元素
数组名[值1][值2]
值1: 访问哪一个一维数组
值2:访问一维数组的哪一个元素
int[][]arr = {{10,20},{30,40},{90,100,101}};
System.out.println("arr.length = " + arr.length);
System.out.println("arr[1] = " + arr[1]);
System.out.println("Arrays.toString(arr[1]) = " + Arrays.toString(arr[1]));
System.out.println("arr[1][1] = " + arr[1][1]);
System.out.println("arr[2][2] = " + arr[2][2]);
int arr [][] = new int[3][5];
System.out.println("arr.length = " + arr.length);
System.out.println("arr[0].length = " + arr[0].length);
System.out.println("Arrays.toString(arr[0]) = " + Arrays.toString(arr[0]));
System.out.println("Arrays.toString(arr[1]) = " + Arrays.toString(arr[1]));
System.out.println("Arrays.toString(arr[2]) = " + Arrays.toString(arr[2]));
System.out.println("-------------");
double [][] dArr = new double[3][];
System.out.println("dArr.length = " + dArr.length);
System.out.println("dArr[0] = " + dArr[0]);
dArr[0] = new double[]{3,14,6,28};
dArr[1] = new double[3];
System.out.println(dArr[1][0]);
二维数组的遍历
String[][]strArr = {{"安琪拉","妲己"},{"百里","米莱迪","亚瑟"},{"后裔","狄仁杰"}};
for (int i = 0; i < strArr.length; i++) {
for (int j = 0; j < strArr[i].length; j++) {
System.out.print(strArr[i][j] + "\t");
}
System.out.println();
}
System.out.println("-------------");
for (String ele[] : strArr){
for (String element : ele){
System.out.print(element + " ");
}
System.out.println();
}
//方式三
int [][] arr = {{1,2,3,4},{2,3,4,5},{2,3},{12,34,90}};
System.out.println("Arrays.deepToString(arr) = " + Arrays.deepToString(arr));