Java 菜鸟教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java 多维数组

在本教程中,我们将借助示例学习使用2维数组和3维数组的Java多维数组。

在学习多维数组之前,请确保您了解Java数组

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

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

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

Java中的二维数组
二维数组

 记住,Java使用基于零的索引,也就是说,Java中数组的索引从0开始,而不是从1开始。

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

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

 这里,data是一个三维数组,最多可以容纳24(3*4*2)个String类型的元素。

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

这是我们如何在Java中初始化二维数组。

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

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

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

示例:二维数组

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属性来计算每行的长度。

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

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中初始化三维数组?

 让我们看看如何在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数组的数组。三维阵列的行也可以像二维阵列一样在长度上有所变化。

示例:3维数组

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