Se connecter / S'enregistrer
Votre question

[Résolu] tableau d'ArrayList en java

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
19 Décembre 2006 16:44:48

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:
  1. ArrayList<String> [] stra = new ArrayList[2];
  2. stra[0].add("nom");
  3. stra[0].add("nom1");
  4. stra[1].add("nom2");
  5. stra[1].add("nom3");
  6. stra[1].add("nom4");

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

Autres pages sur : resolu tableau arraylist java

a c 232 L Programmation
19 Décembre 2006 17:12:42

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 ?
19 Décembre 2006 17:21:59

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...
Contenus similaires
a c 232 L Programmation
19 Décembre 2006 17:44:01

Oula.... là je vois pas trop quoi te répondre ! :D 
Ca fait un moment que j'ai pas fait d'ArrayList.
19 Décembre 2006 18:02:15

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 :D 

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..
23 Mars 2007 11:45:10

Aurais tu trouver une solution a ton tableau dynamique indéxé par des String ?

Je suis dans le même cas que toi...
23 Mars 2007 11:54:29

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 :-)

23 Mars 2007 13:15:52

towanda@IDN a dit :
Bonjour à tous,
  1. ArrayList<String> [] stra = new ArrayList[2];
  2. stra[0].add("nom");
  3. stra[0].add("nom1");
  4. stra[1].add("nom2");
  5. stra[1].add("nom3");
  6. stra[1].add("nom4");

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


Je vois vraiment pas ou est l'interet de mettre une dimension à une Arraylist! Ecrit plutot ceci à la place alors :

  1. String [] stra = new String[2];


23 Mars 2007 13:20:25

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
23 Mars 2007 13:27:47

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 ) .
23 Mars 2007 13:51:21

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.
23 Mars 2007 21:18:22

Sinon le NullPointerException, c'est parce qu'il faut initialiser les ArrayList avant de les utiliser... comme tout objet.
24 Mars 2007 14:02:21

Bah oui new ArrayList<E>
25 Mars 2007 11:05:43

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
14 Octobre 2007 03:27:54

ArrayList []List = new ArrayList[5];

for(int i=0;i<4;i++)
List=new ArrayList();

List[0].add("tend");

System.out.println("la valeur est :"+List[0].get(0));

29 Octobre 2010 15:57:07

Salut,
j'ai le même type de problème.

j'ai :

String ExchangeDate = "20100304" ou '20090506" ou "20091018"

je voudrais pouvoir avoir :

tab[2010][03]
tab[2009][05 10]


comment faire ?
a c 232 L Programmation
29 Octobre 2010 18:11:47

Salut,

Tu récupères les 4 premiers chiffres de la string. Tu regardes si ton tableau contient déjà ces chiffres, s'il les contient pas tu fais un add() des 4 chiffres.
Ensuite, tu récupères les 4 autres chiffres et tu les add dans l'élément du tableau que tu viens de créer ou récupérer.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS