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 :

Tableaux irréguliers en Java

Et bien, vous savez déjà comment créer des tableaux unidimensionnels 🙂

Voici à quoi ressemblera le code résultant :

// Matrix of important data
int[][] matrix = new int[2][];
matrix[0] = new int[10];
matrix[1] = new int[50]
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 lengthproprié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 :

int[][] matrix = new int[3][];
matrix[0] = new int[]{1, 2, 3, 4, 5, 6};
matrix[1] = new int[]{1, 2, 3};
matrix[2] = new int[]{1};
for (int i = 0; i < matrix.length; i++) {
   for (int j = 0; j < matrix[i].length; j++)
      System.out.print( matrix[i][j] + " " );
   System.out.println();
}
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 ivariable), nous parcourons séquentiellement toutes les lignes (tableaux) qui composent notre tableau à deux dimensions. Chaque valeur de icorrespond à une ligne avec cet index.

Dans la boucle interne (la jvariable), 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
1 2 3 4 5 6
Deux lignes du tableau sont traitées
1 2 3 4 5 6
1 2 3
Trois lignes du tableau sont traitées
1 2 3 4 5 6
1 2 3
1


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.