Menu
Coddy logo textTech

3D-массивы и выше

Часть раздела Логика и управление потоком путешествия по Java на Coddy — урок 7 из 59.

Так же, как вы можете создавать двумерные массивы (массивы массивов), вы можете создавать трёхмерные массивы (массивы массивов массивов), четырёхмерные массивы и так далее. Такие массивы называются многомерными.

Трёхмерный массив можно визуализировать как коллекцию двумерных массивов, сложенных друг на друга, формирующих кубическую структуру. Каждый элемент в трёхмерном массиве доступен с использованием трёх индексов: одного для глубины (какой двумерный массив), одного для строки и одного для столбца.

Вот как объявить и инициализировать трехмерный массив в 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. Она должна создать трехмерный массив целых чисел с указанными размерами и инициализировать каждый элемент массива произведением его индексов по глубине, строке и столбцу (начиная с 1).

Например, элемент в [d][r][c] должен иметь значение (d + 1) * (r + 1) * (c + 1).

Наконец, выведите результирующий трехмерный массив в консоль с использованием вложенных циклов. Вывод должен выглядеть так:

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

Шпаргалка

Трёхмерные массивы — это массивы массивов массивов, визуализируемые как кубические структуры с глубиной, строками и столбцами.

Объявление и инициализация:

data_type[][][] array_name = new data_type[depth][rows][columns];

Пример:

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}
    }
};

Элементы доступны с использованием трёх индексов: array[depth][row][column]

Попробуйте сами

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Проверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком