在本教程中,我们将借助示例学习使用2维数组和3维数组的Java多维数组。
在学习多维数组之前,请确保您了解Java数组。
多维数组是数组的数组。多维数组的每个元素都是数组本身。例如,
int[][] a = new int[3][4];
在这里,我们创建了一个名为a的多维数组。它是一个二维数组,最多可以容纳12个元素,
记住,Java使用基于零的索引,也就是说,Java中数组的索引从0开始,而不是从1开始。
让我们再举一个多维数组的实例。这次我们将创建一个3维数组。例如,
String[][][] data = new String[3][4][2];
这里,data是一个三维数组,最多可以容纳24(3*4*2)个String类型的元素。
这是我们如何在Java中初始化二维数组。
int[][] a = { {1, 2, 3}, {4, 5, 6, 9}, {7}, };
如我们所见,多维数组的每个元素都是数组本身。而且,与C / C ++不同,Java中多维数组的每一行可以具有不同的长度。
class MultidimensionalArray { public static void main(String[] args) { //创建二维数组 int[][] a = { {1, 2, 3}, {4, 5, 6, 9}, {7}, }; //计算每行的长度 System.out.println("第1行的长度: " + a[0].length); System.out.println("第2行的长度: " + a[1].length); System.out.println("第3行的长度: " + a[2].length); } }
输出:
第1行的长度: 3 第2行的长度: 4 第3行的长度: 1
在上面的实例中,我们创建了一个名为a的多维数组,因为多维数组的每个组件也是一个数组(a[0],[1]和a[2]也是数组)。
这里,我们使用length属性来计算每行的长度。
class MultidimensionalArray { public static void main(String[] args) { int[][] a = { {1, -2, 3}, {-4, -5, 6, 9}, {7}, }; for (int i = 0; i < a.length; ++i) { for(int j = 0; j < a[i].length; ++j) { System.out.println(a[i][j]); } } } }
输出:
1 -2 3 -4 -5 6 9 7
我们还可以使用for ... each循环来访问多维数组的元素。例如,
class MultidimensionalArray { public static void main(String[] args) { //创建二维数组 int[][] a = { {1, -2, 3}, {-4, -5, 6, 9}, {7}, }; //首先for ... each循环访问单个数组 //在二维数组中 for (int[] innerArray: a) { //第二次for ... each循环访问行内的每个元素 for(int data: innerArray) { System.out.println(data); } } } }
输出:
1 -2 3 -4 -5 6 9 7
在上面的实例中,我们创建了一个名为a的二维数组,然后使用for 循环和for…each循环访问数组的每个元素。
让我们看看如何在Java中使用3d数组。我们可以初始化一个类似于2d数组的3d数组。例如,
// test is a 3d array int[][][] test = { { {1, -2, 3}, {2, 3, 4} }, { {-4, -5, 6, 9}, {1}, {2, 3} } };
基本上,3d数组是2d数组的数组。三维阵列的行也可以像二维阵列一样在长度上有所变化。
class ThreeArray { public static void main(String[] args) { // 创建三维数组 int[][][] test = { { {1, -2, 3}, {2, 3, 4} }, { {-4, -5, 6, 9}, {1}, {2, 3} } }; //for..each循环迭代3d数组的元素 for (int[][] array2D: test) { for (int[] array1D: array2D) { for(int item: array1D) { System.out.println(item); } } } } }
输出:
1 -2 3 2 3 4 -4 -5 6 9 1 2 3