相信看过我的这篇文章(一维数组详解)的小伙伴应该都了解了什么是一维数组,那么我们就向更深处探索一下更高级别的数组(高维数组)吧。
什么是多维数组
顾名思义,多维数组就是维度超过一维的数组,那么它长什么样呢?请看
多维数组的定义
看完了多维数组的样子,为了满足我们的好奇心,让我们来java中创建并打印一个多维数组。
//定义二维数组,2表示2行,3表示3列
int[][] twoDimArr = new int[2][3];
//也可以直接初始化定义二维数组
int[][] twoDimArr2 = {{1,2,3}, {4,5,6}};
//使用增强for输出二维数组
for (int[] arr : twoDimArr2){
System.out.println(Arrays.toString(arr));
}
打印结果为
为什么要用增强for打印二维数组呢,这是因为一维数组的打印方法(Arrays.toString())是针对于一维数组重写的toString方法,不适用于二维数组,所以我们可以使用增强for加Arrays.toString()方法输出二维数组。
看完了二维数组也到了三维数组,其实三维数组的本质就是多个二维数组的叠加。
//三维数组的创建,其中[2][3][2]中分别表示2个二维数组,每个二维数组有3行2列
int[][][] arrays = new int[2][3][2];
//初始化创建
int[][][] arrays1 = new int[][][]{{{1, 2}, {3, 4}, {5, 6}},
{{7,8}, {9,10},{11,12}}};
//嵌套增强for打印三维数组
for (int[][] arr2 : arrays1) {
System.out.println("[");
for (int[] arr : arr2) {
System.out.println(Arrays.toString(arr));
}
System.out.println("]");
}
打印结果如下
可能发生的异常
与一维数组一样,多维数组也会发生越界异常和空指针异常,出现原因与一维数组完全相同,就不在此赘述。