Array 3D e oltre
Fa parte della sezione Logica e flusso del percorso Java di Coddy. Lezione 7 di 59.
Proprio come puoi creare array 2D (array di array), puoi creare array 3D (array di array di array), array 4D e così via. Questi sono chiamati array multidimensionali.
Un array 3D può essere visualizzato come una raccolta di array 2D impilati uno sopra l’altro, che formano una struttura simile a un cubo. Ogni elemento di un array 3D si accede utilizzando tre indici: uno per la profondità (quale array 2D), uno per la riga e uno per la colonna.
Ecco come dichiari e inizializzi un array 3D in Java:
data_type[][][] array_name = new data_type[depth][rows][columns];data_type: Il tipo di elementi che l'array conterrà.array_name: Il nome dell'array.
depth: Il numero di array 2D (profondità).rows: Il numero di righe in ciascun array 2D.columns: Il numero di colonne in ciascun array 2D.
Per esempio, per creare un array 3D di interi con dimensioni 2x3x4, scriveresti:
int[][][] cube = new int[2][3][4];Puoi anche inizializzare direttamente un array 3D:
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}
}
};Sfida
FacileScrivi un programma che accetta tre argomenti interi: depth, rows e cols. Dovrebbe creare un array 3D di interi con le dimensioni specificate e inizializzare ogni elemento dell'array con il prodotto dei suoi indici di profondità, riga e colonna (a partire da 1).
Ad esempio, l'elemento in [d][r][c] dovrebbe avere il valore (d + 1) * (r + 1) * (c + 1).
Infine, stampa l'array 3D risultante sulla console usando cicli annidati. L'output dovrebbe apparire così:
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 24Provalo tu
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 arreglo 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();
}
}
}
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Array multidimensionali
Concetti di base degli array 2DAccesso agli elementi degli array 2DCicli annidati con array 2DRiepilogo - Array 2DAddizione e sottrazione di matriciArray irregolariArray 3D e oltreSchemi comuni degli array 2DRiepilogo - Tutto sugli array4HashSet Parte 1
Che cos'è un HashSet?Aggiungere un elementoRimuovere un elementoVerificare se un elemento esisteVuoto e dimensioneSvuotare e clonareRipasso - HashSet7Gestione di base degli errori
Nozioni di base su try-catchBlocco finallyLancio di eccezioniEccezioni personalizzate2HashMap Parte 1
Che cos'è una HashMap?Dichiarare una HashMapAccedere ai valoriVerificare se una chiave esisteModificare i dizionariRiepilogo - HashMap3HashMap Parte 2
Metodi di HashMapIterare con keySet()Iterare con entrySet()HashMap annidateRiepilogo - Gestire il magazzinoRiepilogo - Operazioni con HashMap6Flusso di controllo avanzato
Istruzioni con etichettaEspressione switchCorrispondenza dei patternClausole guardiaRiepilogo - Flusso di controllo9Progetto - Contatore di parole uniche
Inserimento e memorizzazione del testoElaborazione delle paroleEsercitati da solo: Compilatore Java online