next up previous contents index
suivant: Un exemple : la monter: Tableaux précédent: La classe Arrays   Table des matières   Index


Tableaux pluridimensionnels

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

  int[][] t;

Figure 2.3: Tableau bidimensionnel : déclaration d'une variable et création.
108#108

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 2.3) :

    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 en initialisant explicitement ses éléments de la façon suivante :

    t = new int[][] {
          new int[] {1, 2, 3},
          new int[] {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 de construire un tableau avec des lignes de longueurs différentes :

    t =  new int[][] {
      new int[] {1},
      new int[] {2, 3},
      new int[] {4, 5, 6}
    };


next up previous contents index
suivant: Un exemple : la monter: Tableaux précédent: La classe Arrays   Table des matières   Index
Rene' LALEMENT 2002-11-07