Bonjour à tous,
j'aurais une petite question pour vous:
est-il possible de faire des tableaux d'ArrayList en java?
Par exemple, lorsque je tape ceci:
Code :
|
Eclipse ne me signale pas d'erreur mais lorsque je lance le programme, j'ai une "java.lang.NullPointerException".
Pouvez-vous m'aider?
Merci beaucoup
Message édité par towanda@IDN le 23-03-2007 à 12:20:47
Salut,
C'est bizarre de vouloir faire des tableaux d'ArrayList, sachant qu'un ArrayList est un tableau dynamique.
Je ne sais pas du tout si c'est possible de faire des tableaux d'ArrayList, mais tu peux faire des ArrayList d'ArrayList, ce qui doit pouvoir résoudre ton problème je pense... non ?
Ok, je peux faire ça.
Mais alors comment modifier une valeur contenue dans ma "sousArrayList"? sans devoir supprimer la "sousArrayList", en recréer une nouvelle avec les bonnes valeurs et la réinsérer dans l'ArrayList principale?
Je suis un peu perdue...
Oula.... là je vois pas trop quoi te répondre !
Ca fait un moment que j'ai pas fait d'ArrayList.
En fait, je ne suis pas spécialement attachée aux ArrayLists lol.
Mais je cherche un moyen d'implémenter une structure, genre matrice (tab [][]) dont le nombre de lignes dépend des traitements que mon application fait précédemment et dont le nombre de colonnes varie selon chaque ligne
En fait, pour donner un exemple assez visuel, je voudrais pouvoir implémenter:
un tableau de longueur x contenant une liste de noms
un tableau de longueur x contenant la liste des prénoms associés
un tableau de longueur x contenant la liste des animaux de compagnie de chaque personne (nom prénom).
Ce qui donnerait:
[Duran] [Pol] [chat, chien, poisson]
[Debon] [Luc] [chien, rat]
[Leduc] [Jon] [souris, hamster, canari, serpent]
...
Le nombre de personnes est déterminé par l'application, ce qui pose déjà problème au niveau du stockage des listes d'animaux.
Ensuite, je voudrais regrouper d'une manière ou d'une autre les lignes qui ont un animal commun:
ici ça donnerait:
groupe 1
[Duran] [Pol] [chat, chien, poisson]
[Debon] [Luc] [chien, rat]
et
groupe 2
[Leduc] [Jon] [souris, hamster, canari, serpent]
...
Là également ça me pose problème vu que je ne connais pas le nombre de personnes qu'il y aura dans chaque groupe.
C'est un problème idiot mais je n'arrive pas à trouver une structure de données qui me permettrait de m'en sortir..
Aurais tu trouver une solution a ton tableau dynamique indéxé par des String ?
Je suis dans le même cas que toi...
Message édité par immobilia le 23-03-2007 à 11:49:04
Oui, en fait il est possible de créer des ArrayList d'arrayList, je n'avais simplement pas trouvé la bonne syntaxe:
Par exemple:
ArrayList<ArrayList<ArrayList<String>>> stringaaa = new ArrayList<ArrayList<ArrayList<String>>>();
et pour l'utilisation:
stringaaa.add(new ArrayList<ArrayList<String>>());
stringaaa.add(new ArrayList<ArrayList<String>>());
stringaaa.get(0).add(new ArrayList<String>());
stringaaa.get(0).add(new ArrayList<String>());
stringaaa.get(0).add(new ArrayList<String>());
stringaaa.get(0).get(2).add("nouvelle chaine" );
Tu peux aller aussi loin que tu veux comme ça je pense, ça te débarrasse des problèmes liés à la connaissance de la taille de tes tableaux.
J'espère que ça répond à ta question :-)
| towanda@IDN a écrit : Bonjour à tous,
|
Je vois vraiment pas ou est l'interet de mettre une dimension à une Arraylist! Ecrit plutot ceci à la place alors :
Code :
|
justement, l'objet de ma question était de trouver un moyen de ne pas mettre de dimension, d'où ma solution d'arraylists d'arraylists
Ca je sais merci , je connais bien java . Ce que je voulais en fait signaler , c'est comment t'as eu l'idée de mettre une dimension à un object qui est fait pour justement ne pas avoir de limite ( et qui de plus peut contenir ce qu'il veut ) .
Parce que je pensais d'abord qu'il était impossible de créer des arraylists d'arraylists, et par la suite de modifier un élément d'une arraylist d'arraylist. Je n'avais pas trouvé la bonne syntaxe.
Sinon le NullPointerException, c'est parce qu'il faut initialiser les ArrayList avant de les utiliser... comme tout objet.
Message édité par aik le 23-03-2007 à 21:21:36
Bah oui new ArrayList<E>
Oui, ça semble évidenet avec un peu de maitrise, mais à l'époque ça ne l'était pas pour moi et personne n'avait su me répondre
ArrayList []List = new ArrayList[5];
for(int i=0;i<4;i++)
List[i]=new ArrayList();
List[0].add("tend" );
System.out.println("la valeur est :"+List[0].get(0));
Il y a 459 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
