Arrays 3D e Além
Parte da seção Lógica e Fluxo do Journey de Java da Coddy — lição 7 de 59.
Assim como você pode criar arrays 2D (arrays de arrays), você pode criar arrays 3D (arrays de arrays de arrays), arrays 4D e assim por diante. Esses são chamados de arrays multidimensionais.
Um array 3D pode ser visualizado como uma coleção de arrays 2D empilhados uns sobre os outros, formando uma estrutura semelhante a um cubo. Cada elemento em um array 3D é acessado usando três índices: um para a profundidade (qual array 2D), um para a linha e um para a coluna.
Aqui está como você declara e inicializa um array 3D em Java:
data_type[][][] array_name = new data_type[depth][rows][columns];data_type: O tipo de elementos que o array conterá.array_name: O nome do array.
depth: O número de arrays 2D (profundidade).rows: O número de linhas em cada array 2D.columns: O número de colunas em cada array 2D.
Por exemplo, para criar um array 3D de inteiros com dimensões 2x3x4, você escreveria:
int[][][] cube = new int[2][3][4];Você também pode inicializar um array 3D diretamente:
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}
}
};Desafio
FácilEscreva um programa que recebe três argumentos inteiros: depth, rows e cols. Ele deve criar um array 3D de inteiros com as dimensões especificadas e inicializar cada elemento do array com o produto de seus índices de profundidade, linha e coluna (começando de 1).
Por exemplo, o elemento em [d][r][c] deve ter o valor (d + 1) * (r + 1) * (c + 1).
Finalmente, imprima o array 3D resultante no console usando loops aninhados. A saída deve ser como esta:
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 24Folha de consulta
Arrays 3D são arrays de arrays de arrays, visualizados como estruturas semelhantes a cubos com profundidade, linhas e colunas.
Declaração e inicialização:
data_type[][][] array_name = new data_type[depth][rows][columns];Exemplo:
int[][][] cube = new int[2][3][4];Inicialização direta:
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}
}
};Os elementos são acessados usando três índices: array[depth][row][column]
Experimente você mesmo
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];
// Escreva seu código abaixo
// Imprima o 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 lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica e Fluxo
1Arrays Multidimensionais
Básicos de Arrays 2DAcessando Elementos de Arrays 2DLoops Aninhados com Arrays 2DResumo - Arrays 2DAdição e Subtração de MatrizesArrays EscalonadosArrays 3D e AlémPadrões Comuns de Arrays 2DResumo - Tudo Sobre Arrays2HashMap Parte 1
O que é um HashMap?Declarar um HashMapAcessando ValoresVerificar se a Chave ExisteModificando DicionáriosResumo - HashMap3HashMap Parte 2
Métodos do HashMapIterar com keySet()Iterar com entrySet()HashMap AninhadoResumo - Gerenciar ArmazémResumo - Operações do HashMap6Fluxo de Controle Avançado
Declarações RotuladasExpressão SwitchCorrespondência de PadrõesCláusulas de GuardaResumo - Fluxo de Controle9Projeto - Contador de Palavras Únicas
Entrada e Armazenamento de TextoProcessamento de Palavras