Dernière mise à jour :2008-07-24

informatique

Dans un programme, un tableau est un espace mémoire qu'on peut représenter schématiquement par une grille composée de plusieurs colonnes et parfois, de plusieurs lignes. Tout langage de programmation permet de créer et de se servir de tableaux car ceux-ci sont la base du stockage de données.

En Java, il existe plusieurs façon de déclarer et de se servir de tableaux. Cet article vous propose de vous présenter des exemples de code dans lesquels on se sert de tableau, accompagnés d’explications.

Sans s’attarder plus longuement dans cette introduction, voici dès maintenant deux premières façons de déclarer un tableau.

  1. char[] monTableau;
  2. char monTableau[];

Lorsque le tableau est déclaré, il reste à indiquer le nombre de variables de type «char» (chaîne de caractères) qu’il contiendra. Par exemple, pour allouer un espace de deux variables, on peut écrire : monTableau = new char[2];

Le listing du programme suivant reprend la première déclaration ci-dessus, alloue ensuite un espace de deux variables de type «char», affecte des valeurs à ces deux espaces et finalement, écrit le contenu du tableau à l’écran.

Listing 1.0 Déclaration d'un tableau
1. class exTableau1
2. {
3.   public static void main(String[] argv)
4.   {
5.    char[] monTableau;
6.   
7.    monTableau = new char[2];
8.    monTableau[0] = 'a';
9.    monTableau[1] = 'b';
10.   
11.    System.out.println(monTableau);
12.   }
13. }

Le programme suivant déclare un tableau, lui alloue 4 espaces destinés à recevoir des valeurs de types booléenne. Ce type de données ne peut prendre que deux valeurs soit : true (vrai) et false (faux).

Vous remarquerez que le tableau est ici déclaré d’une façon différente que celle utilisée dans le programme précédent. En effet, l’affectation des différentes valeurs est réalisée tout de suite après la déclaration en utilisant les caractères «{» et «}» pour délimiter le début et la fin du contenu.

En terminant, le programme écrit à l’écran la valeur de la variable contenu en case 1 du tableau, c’est à dire, «false».

Remarque : Il faut préciser que la première case d’un tableau en langage Java possède toujours l’indice 0 et non 1 comme dans d’autre langage de programmation comme Visual Basic par exemple.

Remarque : Vous remarquerez aussi qu’il est possible de concaténer (lier les valeurs de deux variables) une chaîne de caractères à une valeur de type booléenne à l’aide de l’opérateur «+». En fait, dans ce cas, c’est deux chaînes de caractères qui seront jointes car l’opérateur «+» convertira d’abord la valeur booléenne en chaîne.

Listing 2.0 Déclaration d'un tableau
1. class exTableau2
2. {
3.   public static void main(String[] argv)
4.   {
5.    boolean monTableau[] = {true,false,true,true};
6.
7.    System.out.println("Second element du tableau : " + monTableau[1]);
8.   }
9. }

Il est souvent important de connaître la longueur d’un tableau. Il est possible de connaître cette valeur en utilisant la propriété «length» du tableau.

Le listing ci-dessous définit un tableau et écrit ensuite à l’écran sa longueur.

Remarque : Le nombre indiquant la longueur du tableau ne représente jamais l’un de ses indices puisque, tel que mentionné ci-dessus, le premier indice d’un tableau est 0.

Le programme présente aussi une introduction à la gestion des erreurs dans un tableau avec les expressions «try» et «catch».

Dans l’instruction «try», délimitée par les caractères «{» et «}», le programme tente d’affecter une valeur dans une case inexistante du tableau. Ensuite, l’instruction «catch», comme son nom l’indique, «attrapera» l’erreur, si il y a lieu. Dans ce cas, le type d’erreur vérifié est celui d’un indice de tableau hors limite (ArrayIndexOutOfBoundsException).

Listing 3.0 Longeur d'un tableau
1. class exTableau3
2. {
3.   public static void main(String[] argv)
4.   {
5.    int monTableau[] = new int[3];
6.
7.    System.out.println("La longueur du tableau est : " + monTableau.length);
8.
9.    try
10.    {
11.     monTableau[monTableau.length] = 1;
12.    }
13.    catch(ArrayIndexOutOfBoundsException e)
14.    {
15.     System.out.println("erreur : " + e);
16.    }
17.   }
18. }

L'exemple qui suit montre comment naviguer parmi tout les éléments d'un tableau. Pour réaliser celà le programme utilise l'instruction «for» qui permet d'exécuter une boucle.

Dans le listing, l'instruction «for» apparait comme ceci :

for (int x=0;x

Celà signifit que le traitement de toutes les instructions faisant partie du bloc de code de la boucle (délimitée par les caractères «{» et «}») doit être répété de 0 à la valeur de la longueur du tableau.

Remarque : La mention «x++» à la fin de l'instruction signifie que l'indice sera incrémenté de 1. En fait, «x++» est une forme courte de l'instruction «x = x + 1».

Listing 4.0 Navigation dans un tableau
1. class exTableau4
2. {
3.   public static void main(String[] argv)
4.   {
5.    int monTableau[] = new int[5];
6.
7.    int resultat = 0;
8.
9.    for (int x=0;x<monTableau.length;x++)
10.    {
11.     monTableau[x] = x;
12.     resultat += x;
13.     if ((x - 1) == monTableau.length)
14.      System.out.println(x);
15.     else
16.      System.out.println(x + " + ");
17.    }
18.
19.    System.out.println("= " + resultat);
20.   }
21. }

Le dernier exemple de cet article fait une introduction aux tableaux à multiples dimensions. Dans ce cas ci, ce sera un tableau à deux dimensions puisque, bien souvent, c'est ce type de tableau qui est utilisé dans la plupart des programmes.

Deux méthodes sont proposées pour définir le tableau et lui allouer son espace :

  1. On procède à l'allocation en une seule fois en précisant les deux dimensions. On obtient alors un tableau formé de colonnes mais aussi de lignes.
  2. On alloue d'abord le nombres de lignes du tableau et ensuite, graduellement, à l'intérieur d'une boucle, on alloue la dimension des colonnes de chaque lignes.
Listing 5.0 Tableaux à plusieurs dimensions
1. class exTableau5
2. {
3.   public static void main(String[] argv)
4.   {
5.    int[][] monTableau;
6.
7.    monTableau = new int[2][4];
8.
9.    for (int x=0;x<monTableau.length;x++)
10.    {
11.     for (int y=0;y<monTableau[x].length;y++)
12.      monTableau[x][y] = (x+y);
13.     }
14.
15.    System.out.println("Valeur de monTableau en case [1][2] : " + monTableau[1][2]);
16.
17.    monTableau = new int[2][];
18.
19.    for (int x=0;x<monTableau.length;x++)
20.    {
21.     monTableau[x] = new int[4];
22.     for (int y=0;y<monTableau[x].length;y++)
23.      monTableau[x][y] = (x+y);
24.    }
25.
26.    System.out.println("Valeur de monTableau en case [1][2] : " + monTableau[1][2]);
27.   }
28. }

Auteur : Sylvain Bilodeau

Date de mise en ligne : 2003-01-23

Langage Java - Introduction aux tableaux

aidre moi pour faite un progamme en java d'un tableaux 2 colonnes et 10 lignes

2008-04-16 00:00:00