[][]
. La déclaration du nom du
tableau ne crée aucun objet :
int[][] t;
Deux niveaux de création sont nécessaires :
t = new int[2][];
crée un tableau de longueur 2, dont les éléments sont des références à des tableaux de int, ces éléments étant initialisés à null. Ensuite, une boucle permet de créer chacune des lignes du tableau bidimensionnel, les éléments de chaque ligne étant initialisés à 0 (figure 1.21) :
for (int i=0; i<t.length; i++) t[i] = new int[3];
On accède à ses éléments par double indexation : t[0][0], t[0][1] et t[0][2] pour la première ligne, t[1][0], t[1][1] et t[1][2] pour la seconde. Comme t est un tableau, une indexation partielle est admise : les expressions t[0] et t[1] désignent des tableaux de longueur 3. Ces deux niveaux de création peuvent être effectués en une seule fois, par l'affectation suivante, qui crée un tableau rectangulaire à 2 lignes et 3 colonnes, dont tous les éléments sont nuls :
t = new int[2][3];
Il est aussi possible de créer des tableaux non rectangulaires, chaque ligne ayant son nombre d'éléments :
for (int i=0; i<t.length; i++) t[i] = new int[i+1];
Enfin, on peut créer un tableau bidimensionnel anonyme en initialisant explicitement ses éléments de la façon suivante :
t = new int[][] { {1, 2, 3}, {4, 5, 6} };
Lors de la définition d'un nom, le constructeur new int[][] peut être omis :
int[][] t = { {1, 2, 3}, {4, 5, 6} };
Il est également facile d'initialiser un tableau anonyme avec des lignes de longueurs différentes :
t = new int[][] { {1}, {2, 3}, {4, 5, 6} };