Java 多维数组

多维数组是数组的数组,多维数组的每个元素都是一个数组。在本教程中,我们将通过示例介绍 Java 二维数组和三维数组。

在本教程中,我们将通过示例了解使用二维数组和三维数组的 Java 多维数组。

在我们了解多维数组之前,请确保您了解Java 数组

多维数组是数组的数组,多维数组的每个元素都是一个数组。例如,

int[][] a = new int[3][4];

在这里,我们创建了一个名为 a 的多维数组, 它是一个二维数组,最多可以容纳 12 个元素,

二维数组示意图

Java中的二维数组
二维数组

让我们再举一个多维数组的例子。这次我们将创建一个 3 维数组。例如,

String[][][] data = new String[3][4][2];

这里, 数据是一个三维数组,最多可以容纳 24 (342) 个 String 类型的元素。

如何在 Java 中初始化一个二维数组?

下面是我们如何在 Java 中初始化一个二维数组。

int[][] a = {
    {1, 2, 3},
    {4, 5, 6, 9},
    {7},
};

正如我们所见,多维数组的每个元素都是一个数组本身。而且,与 C/C++ 不同的是,Java 中多维数组的每一行都可以有不同的长度。

二维数组的初始化图示

Java中可变长度的二维数组示例
二维数组的初始化

示例:二维数组

public 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]a[1]a[2] 也是数组)。

在这里,我们使用 length 属性来计算每一行的长度。

示例:使用循环打印二维数组的所有元素

public 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 循环来访问多维数组的元素。例如,

public class MultidimensionalArray {
  public static void main(String[] args) {

    int[][] a = {
      {1, -2, 3},
      {-4, -5, 6, 9},
      {7},
    };

    for (int[] innerArray: a) {
      for(int data: innerArray) {
          System.out.println(data);
      }
    }
  }
}

输出

1
-2
3
-4
-5
6
9
7

如何在 Java 中初始化三维数组?

让我们看看如何在 Java 中使用三维数组。我们可以初始化一个类似于二维数组的 三维数组。例如,

// test is a 三维array
int[][][] test = {
        {
          {1, -2, 3},
          {2, 3, 4}
        },
        {
          {-4, -5, 6, 9},
          {1},
          {2, 3}
        }
};

基本上, 三维数组是二维数组的数组。 三维数组的行的长度也可以变化,就像在二维数组中一样。

示例:三维数组

public class ThreeArray {
  public static void main(String[] args) {

    // create a 三维array
    int[][][] test = {
      {
        {1, -2, 3},
        {2, 3, 4}
      },
      {
        {-4, -5, 6, 9},
        {1},
        {2, 3}
      }
    };

    // 遍历三维数组
    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