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}
}
};Desafío
FácilEscribe 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 24Hoja 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();
}
}
}
}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
1Arreglos Multidimensionales
Básicos de Arreglos 2DAccediendo a Elementos de Arreglos 2DBucles Anidados con Arreglos 2DResumen - Arreglos 2DSuma y Resta de MatricesArreglos IrregularesArreglos 3D y Más AlláPatrones Comunes de Arreglos 2DResumen - Todo Sobre Arreglos4HashSet Parte 1
¿Qué es un HashSet?Agregando un elementoEliminando un elementoComprobando si existe un elementoVacío y tamañoLimpiar y clonarResumen - HashSet7Manejo Básico de Errores
Básicos de Try-CatchBloque FinallyLanzamiento de ExcepcionesExcepciones Personalizadas2HashMap Parte 1
¿Qué es un HashMap?Declarar un HashMapAcceder a ValoresVerificar si una Clave ExisteModificar DiccionariosResumen - HashMap3HashMap Parte 2
Métodos de HashMapIterar con keySet()Iterar con entrySet()HashMap AnidadoResumen - Gestionar AlmacénResumen - Operaciones de HashMap6Flujo de Control Avanzado
Sentencias EtiquetadasExpresión SwitchCoincidencia de PatronesCláusulas de GuardiaResumen - Flujo de Control9Proyecto - Contador de Palabras Únicas
Entrada y Almacenamiento de TextoProcesamiento de Palabras