1. Tableaux irréguliers
En tant que programmeur Java, vous pouvez non seulement échanger les lignes d'un tableau à deux dimensions, mais également construire un tableau comme vous le souhaitez.
Supposons que vous souhaitiez que la première ligne d'un tableau à deux dimensions ait une longueur de 10
, et que vous souhaitiez que la longueur de la deuxième ligne soit 50
. pouvons-nous faire cela? Oui nous pouvons.
Tout d'abord, nous devons créer un "conteneur de conteneurs" - c'est le premier tableau, qui stockera les références aux tableaux de lignes. Voici comment c'est fait :
int[][] name = new int[height][];
Vous omettez simplement la deuxième dimension et la machine Java crée un conteneur de conteneurs. Voici ce qui sera en mémoire après l'exécution de ce code :

Et bien, vous savez déjà comment créer des tableaux unidimensionnels 🙂
Voici à quoi ressemblera le code résultant :
|
Tableau à deux dimensions La ligne zéro est un tableau d' 10 éléments La première ligne est un tableau d' 50 éléments |
Nous venons de créer un soi-disant " jagged array ".
Et si nous voulons maintenant afficher tous les éléments de ce tableau à l'écran, alors la length
propriété du tableau nous sera utile : après tout, les longueurs des lignes du tableau sont différentes.
Au fait, comment trouvez-vous la longueur d'un 'conteneur de conteneurs' dans notre exemple ? C'est aussi un objet tableau, ce qui signifie qu'il a une longueur. La bonne réponse est matrix.length
.
Qu'en est-il des tableaux qui composent nos lignes ?matrix[0].length
2. Travailler avec un tableau à deux dimensions
Supposons que vous souhaitiez afficher un tableau à deux dimensions. Comment tu fais ça?
Notre code ressemblera à ceci :
|
Créer un tableau Remplir le tableau avec des valeurs Boucle externe qui itère sur les lignes du tableau. Boucle interne qui itère sur les cellules d'une seule ligne. |
Vous avez besoin de deux boucles imbriquées. Le premier que nous appelons externe , et le second - interne .
Dans la boucle externe (la i
variable), nous parcourons séquentiellement toutes les lignes (tableaux) qui composent notre tableau à deux dimensions. Chaque valeur de i
correspond à une ligne avec cet index.
Dans la boucle interne (la j
variable), nous parcourons toutes les cellules des lignes. Grâce à la boucle interne, une ligne composée des valeurs d'un tableau unidimensionnel sera affichée à l'écran.
Voici ce qui sera affiché :
Une ligne du tableau est traitée |
|
Deux lignes du tableau sont traitées |
|
Trois lignes du tableau sont traitées |
|
3. Tableaux multidimensionnels
Un autre fait intéressant sur les tableaux, que vous avez probablement déjà deviné. Si vous pouvez créer un tableau à deux dimensions, pouvez-vous créer un tableau à trois dimensions ?
Oui, vous pouvez créer un tableau de n'importe quelle dimension. De tels tableaux sont dits "multidimensionnels".
Juste pour le plaisir, créons un tableau multidimensionnel à 4 dimensions.
int[][][][] matrix = new int[2][3][4][5];
Ce code est trop simple, n'est-ce pas ?
Et si vous le créiez manuellement ?
int[][][][] matrix;
matrix = new int[2][][][]; // Create a 2-element array of references to references to references
for (int i = 0; i < matrix.length; i++)
{
matrix[i] = new int[3][][]; // Create a 3-element array of references to references
for (j = 0; j < matrix[i].length; j++)
{
matrix[i][j] = new int[4][]; // Create a 4-element array of references
for (k = 0; k < matrix[i][j].length; k++)
matrix[i][j][k] = new int[5]; // Create 5-element arrays of integers
}
}
Et c'est juste la création du tableau ! Ensuite, vous devez également travailler avec lui d'une manière ou d'une autre.
Tâche bonus : écrivez du code qui affiche toutes les valeurs dans un tableau à trois dimensions.
GO TO FULL VERSION