Tableau d'ArrayList

Xenthys -  
Xenthys Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -
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. KX Messages postés 19031 Statut Modérateur 3 020
     
    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...
    0
  2. walidovich_85 Messages postés 698 Statut Membre 73
     
    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
    0
  3. Xenthys Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   1
     
    Merci à tous pour vos réponses! Je vais potasser tout ça. ;-)
    0