Tableau d'ArrayList

Fermé
Xenthys - 2 mars 2013 à 18:30
Xenthys Messages postés 31 Date d'inscription dimanche 30 décembre 2012 Statut Membre Dernière intervention 2 mars 2013 - 2 mars 2013 à 20:23
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

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
2 mars 2013 à 19:15
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
walidovich_85 Messages postés 608 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 25 octobre 2015 73
2 mars 2013 à 19:24
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
Xenthys Messages postés 31 Date d'inscription dimanche 30 décembre 2012 Statut Membre Dernière intervention 2 mars 2013 1
2 mars 2013 à 20:23
Merci à tous pour vos réponses! Je vais potasser tout ça. ;-)
0