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]);
}
}
}