Tableaux 3D et au-delà
Fait partie de la section Logique & Flux du Journey Java de Coddy — leçon 7 sur 59.
Tout comme vous pouvez créer des tableaux 2D (tableaux de tableaux), vous pouvez créer des tableaux 3D (tableaux de tableaux de tableaux), des tableaux 4D, et ainsi de suite. Ceux-ci sont appelés tableaux multidimensionnels.
Un tableau 3D peut être visualisé comme une collection de tableaux 2D empilés les uns sur les autres, formant une structure cubique. Chaque élément d’un tableau 3D est accédé à l’aide de trois indices : un pour la profondeur (quel tableau 2D), un pour la ligne et un pour la colonne.
Voici comment déclarer et initialiser un tableau 3D en Java :
data_type[][][] array_name = new data_type[depth][rows][columns];data_type: Le type d'éléments que le tableau contiendra.array_name: Le nom du tableau.
depth: Le nombre de tableaux 2D (depth).rows: Le nombre de lignes dans chaque tableau 2D.columns: Le nombre de colonnes dans chaque tableau 2D.
Par exemple, pour créer un tableau 3D d'entiers avec les dimensions 2x3x4, vous écririez :
int[][][] cube = new int[2][3][4];Vous pouvez également initialiser un tableau 3D directement :
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}
}
};Défi
FacileÉcrivez un programme qui prend trois arguments entiers : depth, rows et cols. Il doit créer un tableau 3D d'entiers aux dimensions spécifiées et initialiser chaque élément du tableau avec le produit de ses indices de profondeur, de ligne et de colonne (commençant à partir de 1).
Par exemple, l'élément à [d][r][c] doit avoir la valeur (d + 1) * (r + 1) * (c + 1).
Enfin, imprimez le tableau 3D résultant dans la console en utilisant des boucles imbriquées. La sortie doit ressembler à ceci :
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 24Aide-mémoire
Les tableaux 3D sont des tableaux de tableaux de tableaux, visualisés comme des structures cubiques avec profondeur, lignes et colonnes.
Déclaration et initialisation :
data_type[][][] array_name = new data_type[depth][rows][columns];Exemple :
int[][][] cube = new int[2][3][4];Initialisation directe :
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}
}
};Les éléments sont accédés en utilisant trois indices : array[depth][row][column]
Essayez vous-même
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];
// Écrivez votre code ci-dessous
// Afficher le tableau 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();
}
}
}
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Tableaux multidimensionnels
Bases des tableaux 2DAccès aux éléments des tableaux 2DBoucles imbriquées avec les tableaux 2DRécapitulatif - Tableaux 2DAddition et soustraction de matricesTableaux irréguliersTableaux 3D et au-delàMotifs courants des tableaux 2DRécapitulatif - Tout sur les tableaux4HashSet Partie 1
Qu'est-ce qu'un HashSet ?Ajouter un ÉlémentSupprimer un ÉlémentVérifier si un Élément ExisteVide et TailleVider et ClonerRécapitulatif - HashSet7Gestion des erreurs de base
Bases du try-catchBloc finallyLever des exceptionsExceptions personnalisées2HashMap Partie 1
Qu'est-ce qu'une HashMap ?Déclarer une HashMapAccéder aux ValeursVérifier si une Clé ExisteModifier les DictionnairesRécapitulatif - HashMap3HashMap Partie 2
Méthodes HashMapItérer avec keySet()Itérer avec entrySet()HashMap imbriquéRécapitulatif - Gérer l'entrepôtRécapitulatif - Opérations HashMap6Flux de contrôle avancé
Instructions étiquetéesExpression switchAppariement de motifsClauses de gardeRécapitulatif - Flux de contrôle9Projet - Compteur de Mots Uniques
Entrée de Texte et StockageTraitement des Mots