Menu
Coddy logo textTech

Arreglos 3D y Más Allá

Parte de la sección Lógica y Flujo del Journey de Java de Coddy — lección 7 de 59.

Al igual que puedes crear arreglos 2D (arreglos de arreglos), puedes crear arreglos 3D (arreglos de arreglos de arreglos), arreglos 4D, y así sucesivamente. Estos se llaman arreglos multidimensionales.

Un arreglo 3D se puede visualizar como una colección de arreglos 2D apilados uno encima del otro, formando una estructura similar a un cubo. Cada elemento en un arreglo 3D se accede utilizando tres índices: uno para la profundidad (qué arreglo 2D), uno para la fila y uno para la columna.

Aquí se muestra cómo declarar e inicializar un arreglo 3D en Java:

data_type[][][] array_name = new data_type[depth][rows][columns];
  • data_type: El tipo de elementos que contendrá el array.
  • array_name: El nombre del array.
  • depth: El número de arreglos 2D (profundidad).
  • rows: El número de filas en cada arreglo 2D.
  • columns: El número de columnas en cada arreglo 2D.

Por ejemplo, para crear un arreglo 3D de enteros con dimensiones 2x3x4, escribirías:

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

También puedes inicializar un arreglo 3D directamente:

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

Desafío

Fácil

Escribe un programa que tome tres argumentos enteros: depth, rows y cols. Debe crear un arreglo 3D de enteros con las dimensiones especificadas e inicializar cada elemento del arreglo con el producto de sus índices de profundidad, fila y columna (empezando desde 1).

Por ejemplo, el elemento en [d][r][c] debe tener el valor (d + 1) * (r + 1) * (c + 1).

Finalmente, imprime el arreglo 3D resultante en la consola usando bucles anidados. La salida debe verse así:

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

Hoja de referencia

Los arrays 3D son arrays de arrays de arrays, visualizados como estructuras similares a cubos con profundidad, filas y columnas.

Declaración e inicialización:

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

Ejemplo:

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

Inicialización directa:

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

Los elementos se acceden usando tres índices: array[depth][row][column]

Pruébalo tú mismo

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];
        // Escribe tu código a continuación

        // Imprime el array 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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo