Se connecter avec
S'enregistrer | Connectez-vous

[Résolu] tableau d'ArrayList en java

Dernière réponse : dans Programmation

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

Lassé par la pub ? Créez un compte
Expert Programmation

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 ?

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..

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 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];


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 ) .
Expert Programmation

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.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde