Tableau d'ArrayList

Bonjour,

J'ai été confronté à un problème que je ne trouve dans aucun manuel et les forums sur internet ne sont pas très explicites à cet sujet. J'aimerais bien créer un tableau (voire une matrice) d'arraylist et je n'arrive pas à trouver la syntaxe correcte.

public ArrayList<Personne>[][] Foule;
Foule=new Arraylist[2][6];


Je veux pouvoir créer plusieurs petites listes qui sont dans une matrice (par exemple, il y aurait une liste à la position [1][1], une autre à la position [1][2] etc...). Je souhaite vraiment utiliser cette technique si cela était possible :quelle est la syntaxe de ce constructeur?

Merci d'avance pour votre aide!

3 réponses

  1. Modérateur
    Tu ne peux pas utiliser des tableaux sur des Collection, il faut utiliser une combinaison de Collection (un ArrayList, c'est un tableau...)

    Donc on peux faire : ArrayList<ArrayList<ArrayList<Personne>>> foule;
    Et après faire des Personne p = foule.get(3).get(1).get(5); par exemple.

    Mais on peut aussi utiliser faire des Collection personnalisées afin d'avoir des manipulations comme Personne p = foule.get(3,1,5); selon tes besoins...
    1. bonsoir,

      voila un exemple simple de matrice pour une classe personne:
      1- j'ai défini la classe personne ailleurs et j'ai y intégré les getters et setters:

      public class Personne {

      private String nom;
      private int age;

      public Personne(String nom, int age)
      {
      this.nom=nom;
      this.age=age;
      }

      public String afficher()
      {
      return "je suis la "+this.getNom()+", et mon age est "+this.getAge()+" ans";
      }
      public String getNom() {
      return nom;
      }
      public void setNom(String nom) {
      this.nom = nom;
      }
      public int getAge() {
      return age;
      }
      public void setAge(int age) {
      this.age = age;
      }
      }

      2- la classe Test qui fait appelle a la methode main()

      public class Test {

      public static void main(String[] args) {
      Personne matrice [][]= new Personne[2][3];
      //Enregistrer les personnes
      for (int i=0;i<2;i++)
      {
      for(int j=0;j<3;j++)
      {
      matrice[i][j]= new Personne("Personne ("+i+") ("+j+")", (i+1)*(j+1));
      }
      }
      //Afficher la matrice Personne
      for (int i=0;i<2;i++)
      {
      for(int j=0;j<3;j++)
      {
      System.out.println(matrice[i][j].afficher());
      }
      }
      }

      }

      résultat d'exécution:

      je suis la Personne (0) (0), et mon age est 1 ans
      je suis la Personne (0) (1), et mon age est 2 ans
      je suis la Personne (0) (2), et mon age est 3 ans
      je suis la Personne (1) (0), et mon age est 2 ans
      je suis la Personne (1) (1), et mon age est 4 ans
      je suis la Personne (1) (2), et mon age est 6 ans

      bonne chance
      1. Merci à tous pour vos réponses! Je vais potasser tout ça. ;-)