next up previous contents index
Next: Sous-typage Up: Tableaux d'objets Previous: Tableaux d'objets

   
Tableaux pluridimensionnels

Tout ceci s'applique directement aux tableaux pluridimensionnels. Par exemple, un tableau bidimensionnel d'éléments de type t est simplement un tableau dont les éléments sont des références à des tableaux d'éléments de type t : le type de ces tableaux bidimensionnels est t[][]. La déclaration du nom du tableau ne crée aucun objet :

  int[][] t;


 \begin{figurette}% latex2html id marker 2502
\begin{center}
\leavevmode
\fbox{...
...sionnel : déclaration d'une variable et création.}
\end{center} \end{figurette}

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


next up previous contents index
Next: Sous-typage Up: Tableaux d'objets Previous: Tableaux d'objets
R. Lalement
2000-10-23