Menu
CoddyTech

三维及更高维数组

本课属于 Coddy Java 学习旅程的“逻辑与流程”单元。第 7 课,共 59 课。

就像你可以创建二维数组(数组的数组)一样,你也可以创建三维数组(数组的数组的数组)、四维数组,等等。这些称为多维数组。

3D 数组可以想象成一组上下堆叠的 2D 数组,形成类似立方体的结构。访问 3D 数组中的每个元素时,需要使用三个索引:一个表示深度(即哪个 2D 数组),一个表示行,一个表示列。

下面介绍如何在 Java 中声明并初始化一个三维数组:

data_type[][][] array_name = new data_type[depth][rows][columns];
  • data_type:数组将存储的元素类型。
  • array_name:数组的名称。
  • depth:二维数组的数量(深度)。
  • rows:每个二维数组中的行数。
  • columns:每个二维数组中的列数。

例如,要创建一个维度为 2x3x4 的整数三维数组,你可以这样写:

int[][][] cube = new int[2][3][4];

你也可以直接初始化一个三维数组:

int[][][] cube = {
    {
        {1, 2, 3, 4},
        {5, 6, 7, 8},
        {9, 10, 11, 12}
    },
    {
        {13, 14, 15, 16},
        {17, 18, 19, 20},
        {21, 22, 23, 24}
    }
};
challenge icon

挑战

简单

编写一个程序,接收三个整数参数:depth、rows 和 cols。程序应创建一个具有指定维度的 3D 整数数组,并将数组的每个元素初始化为其深度、行和列索引(从 1 开始)的乘积。

例如,[d][r][c] 处的元素值应为 (d + 1) * (r + 1) * (c + 1)。

最后,使用嵌套循环将生成的 3D 数组打印到控制台。输出应如下所示:

Depth 0:
1 2 3 4 
2 4 6 8 
3 6 9 12 
Depth 1:
2 4 6 8 
4 8 12 16 
6 12 18 24

亲手试试

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int depth = scanner.nextInt();
        int rows = scanner.nextInt();
        int cols = scanner.nextInt();

        int[][][] array3D = new int[depth][rows][cols];
        // 在下方编写你的代码

        // 打印 3D 数组
        for (int d = 0; d < depth; d++) {
            System.out.println("Depth " + d + ":");
            for (int r = 0; r < rows; r++) {
                for (int c = 0; c < cols; c++) {
                    System.out.print(array3D[d][r][c] + " ");
                }
                System.out.println();
            }
        }
    }
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: Java 在线编译器