Un tableau en Java est un objet. Il est nécessaire de le créer par
allocation dynamique avec un
new
en précisant ses
dimensions. On note
T[]
le type tableau d’éléments de type
T
. La taille du tableau
n’est précisée qu’à l’instanciation. On déclare un tableau
t
d’éléments de type
T
de la façon suivante :
T[] t;
Par exemple, si l’on souhaite créer un tableau
i
d’éléments
de type
int
, on utilise l’instruction :
int[] i;
Comme un tableau est un objet, il est nécessaire d’instancier pendant l’exécution. On instancie un tableau avec l’instruction
new T[taille]
Par exemple, si l’on souhaite déclarer et allouer dynamiquement un tableau de 100 entiers, en utilise
int[] i = new int[100];
On accède aux éléments d’un tableau avec la notation à crochets, par exemple,
int[] t = new int[100]; for(int i = 0 ; i < 100 ; i++) { t[i] = 100 - (i + 1); System.out.println(t[i]); }
On remarque que la variable
i
est déclarée à l’intérieur de
la boucle
for
, cette façon de déclarer les variables est très
utile en Java. Dans l’exemple,
package tableaux; public class ExempleTableau { public static void main(String[] args) { final int T = 20; int[] t = new int[T]; for (int i = 0; i < T; i++) t[i] = i; for (int i = 0; i < T; i++) System.out.println(t[i]); } }
Pour connaître la taille d’un tableau on utilise l’attribut
length
. Par exemple,
int[] t = new int[T]; for (int i = 0 ; i < t.length ; i++) t[i] = i; for (int i = 0 ; i < t.length ; i++) System.out.println(t[i]);
On crée un tableau à plusieurs dimensions (3 par exemple) en juxtaposant plusieurs crochets. Par exemple,
int[][][] t = new int[2][2][2]; for(int i = 0 ; i < 2 ; i++) for(int j = 0 ; i < 2 ; j++) for(int k = 0 ; i < 2 ; k++) { t[i][j][k] = 100*i + 10*j + k; System.out.println(t[i][j][k]); }
Ou encore,
package tableaux; public class ExempleCubique { public static void main(String[] args) { final int T = 3; int[][][] u = new int[T][T][T]; for (int i = 0; i < T; i++) for (int j = 0; j < T; j++) for (int k = 0; k < T; k++) { u[i][j][k] = 100 * i + 10 * j + k; System.out.println(u[i][j][k]); } } }