samedi 29 septembre 2012

Tableau à 2 dimensions

Tableau à 2 dimensions Nous avons vu dans comment utiliser les tableaux simples, à une dimension, dans la ressource Tableau ; nous allons maintenant voir comment faire pour obtenir des tableaux à deux dimensions.
En Java, un tableau à 2 dimensions est en fait un tableau de  tableaux à une dimension
Exemple de tableau 2D
Exemple 1 : un tableau 2d de booléens. Le tableau de gauche comporte 3 éléments de type "tableau de booléens" qui sont représentés à sa droite. C'est donc un tableau de tableaux de booléens : un tableau à 2 dimensions. L'élément d'indice (1,2) s'obtient en regardant dans le deuxième (indice 1) tableau de booléens à droite, puis en prenant son troisième (indice 2) élément : sa valeur est false. Ici, la représentation donnée incite à interprétrer le premier indice comme représentant le numéro de ligne alors que le deuxième indice donne le numéro de colonne.
Exemple de tableau 2D
Exemple 2 : un tableau 2d de doubles. Le tableau du haut comporte 4 éléments de type "tableau de doubles" qui sont représentés en dessous. C'est donc un tableau de tableaux de doubles : un tableau à 2 dimensions. L'élément d'indice (1,2) s'obtient en regardant dans le deuxième (indice 1) tableau de doubles en dessous, puis en prenant son troisième (indice 2) élément : sa valeur est 2,9. Ici, à l'inverse de l'exemple 1, la représentation donnée incite à interprétrer le premier indice comme représentant le numéro de colonne alors que le deuxième indice donne le numéro de ligne.

Déclaration et création

La déclaration se fait comme pour un tableau simple avec les symboles []. La syntaxe générale est:
<<type_des_éléments>>[][] <<nom_du_tableau>>;
Par exemple :
int[][] tab; // tab est un tableau 2d de int
A ce moment, tab permet de désigner un tableau 2d d'entiers mais aucun tableau n'existe. Pour allouer le tableau, on va utiliser le mot clé new comme pour créer un tableau 1d, mais il faudra cette fois donner la taille de ses 2 dimensions. La syntaxe est :
<<nom_du_tableau>> = new <<type_des_éléments>> [ <<taille_de_la_premiere_dimension>> ][ <<taille_de_la_deuxieme_dimension>> ] ;
Par exemple :
tab = new int[5][4];
tab désigne alors un tableau d'entier contenant 20 éléments, le premier indice allant de 0 à 4 et le deuxième allant de 0 à 3.

Lecture et modification des éléments d'un tableau 2d

L'accès aux éléments du tableau se fait également au moyen des symboles crochets []. La syntaxe générale pour désigner l'élément d'indice (i,j) d'un tableau 2d est :
<<nom_du_tableau>>[ <<i>> ][ <<j>> ]
Par exemple pour afficher l'élément d'indice (2,0) du tableau tab, on écrit
System.out.println( tab[2][0] );
De la même manière, pour assigner la valeur 4 à l'élément d'indice (1,3), on écrit :
tab[1][3] = 4 ;

1 commentaire: