Probleme ArrayList le retour

vincent_vz Messages postés 7 Date d'inscription dimanche 6 mars 2005 Statut Membre Dernière intervention 21 juillet 2005 - 17 avril 2005 à 18:15
vincent_vz Messages postés 7 Date d'inscription dimanche 6 mars 2005 Statut Membre Dernière intervention 21 juillet 2005 - 18 avril 2005 à 10:14
Bonjour , eh oui j'ai encore un probleme avec les arraylist lol ; maintenant que j'arrive a remplir corectement les Arraylist a 2 dimension

ArrayList t[][] = new ArrayList();

j'aimerai savoir comment recuperer les valeur d'une case par exemple car cela ne marche pas

int i = t[1][1];

par exemple

MERCI D'AVANCE

3 réponses

JeanPoldeux Messages postés 64 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 5 août 2005
18 avril 2005 à 01:30
Salut,



Je pense que ton problème vient de la conception de ton programme.

En fait,



ArrayList t[][] = new ArrayList[100][100];



signifie que tu déclares un tableau(t) de 100 tableaux(t[100]) pouvant contenir chacun 100 ArrayList (t[100][100]).



t[1][1] représente donc une liste pouvant contenir un nombre
indéterminé d'éléments (Principe d'un conteneur : Vector, ArrayList,
etc.) parmi les 10.000 listes(100x100) de ton tableau et non un élément
d'une ArrayList à 2 dimensions. Une ArrayList ne peut avoir qu'une
seule dimension puisque il s'agit d'un conteneur d'objets et ces objets
peuvent avoir un nombre indéterminé de champs.



En reprenant ton post précédent, tu auras donc :




static ArrayList matSalon[][] = new ArrayList[100][100];
static int nbSalon = 0;

public static void createSalon(String nomChan)
{


matSalon[nbSalon][0] = new ArrayList();


matSalon[nbSalon][0].add(nomChan);
nbSalon = nbSalon + 1;
}



et pour atteindre un élément d'une liste tu devras faire :



String str = (String) matSalon[1][1].get(1);



str contiendra alors le premier élément de la la première liste du premier tableau de ArrayList.




String str = (String) matSalon[5][3].get(matSalon.size()-1);





str contiendra alors le dernier élément de la troisième liste du cinquième tableau de ArrayList.



Tu peux utiliser une méthode telle que celle-ci pour récupérer l'objet



public static String getSalon(int indexTableau, int indexListe, int indexSalon)
{

if ( indexTableau < matSalon.length )

{
if ( indexListe < matSalon[indexTableau].length )

{

if (
indexSalon < matSalon[indexTableau][indexListe].size() )

{


return String str = (String) matSalon[indexTableau][indexListe].get(indexSalon);

}

else return null;

}

else return null;

}

else return null;


}



Tu vois donc que pour atteindre un élément du doit avoir en ta
possession les deux indices du tableau plus l'indice de l'objet dans la
liste.



Si tu as des problèmes de comprehension, n'hésites pas. Je ne suis
peut-être pas aussi clair que cela, bien que je m'y sois attelé.



@+



Ps : La prochaine fois, utilise le même post quand il s'agit du meme
sujet. Ca ne pourra que gagner en clarté pour d'autres qui pourrait
rencontrer le meme problème.
0
JeanPoldeux Messages postés 64 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 5 août 2005
18 avril 2005 à 01:32
Pour la documentation sur le conteneur ArrayList et ses méthodes :



http://java.sun.com/j2se/1.4.2/docs/api/java/util/ArrayList.html



@+
0
vincent_vz Messages postés 7 Date d'inscription dimanche 6 mars 2005 Statut Membre Dernière intervention 21 juillet 2005
18 avril 2005 à 10:14
merci j'ai bien capté , j'pensé qu'on pouvait faire des arraylist a deux dimension ca aurait été tres pratique pour mon programme , mais bon , la j'ai bouletisé, j'vais donc me demerdé avec un tableau d'entier a 2 dimensions puis avec une arraylist

merci :-D
0
Rejoignez-nous