ArrayList(java) renvoi que le dernier element
Fermé
Guntyr
Messages postés
8
Date d'inscription
mardi 16 mars 2010
Statut
Membre
Dernière intervention
19 août 2010
-
16 mars 2010 à 17:59
Guntyr Messages postés 8 Date d'inscription mardi 16 mars 2010 Statut Membre Dernière intervention 19 août 2010 - 17 mars 2010 à 11:10
Guntyr Messages postés 8 Date d'inscription mardi 16 mars 2010 Statut Membre Dernière intervention 19 août 2010 - 17 mars 2010 à 11:10
A voir également:
- ArrayList(java) renvoi que le dernier element
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Le dernier iphone - Guide
- Java bible - Forum Téléchargement
9 réponses
artragis
Messages postés
481
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
6 avril 2010
146
16 mars 2010 à 18:08
16 mars 2010 à 18:08
un arraylist se parcours avec un itérator...
Iterator it=new ta_list.iterator();
while(it.hasNext()){
//pour retourner un élément, tu utilises it.next();
}
Iterator it=new ta_list.iterator();
while(it.hasNext()){
//pour retourner un élément, tu utilises it.next();
}
artragis
Messages postés
481
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
6 avril 2010
146
16 mars 2010 à 18:44
16 mars 2010 à 18:44
tu as bien mis
ArrayList<type d'objet dedant> Tab=new ArrayList<type d'objet dedans>();
puis
Iterator it= Tab.iterator();
il faut bien sur faire au tout départ import java.util.Iterator;
ps j'ai plus ou moins le même problème que toi, de mets dse objets Jpanel dans un arrayList, chaque JPanel étant sensé dessiner un rectangle, seul le premier et le dernier le font, bizarre n'est-ce pas.
ArrayList<type d'objet dedant> Tab=new ArrayList<type d'objet dedans>();
puis
Iterator it= Tab.iterator();
il faut bien sur faire au tout départ import java.util.Iterator;
ps j'ai plus ou moins le même problème que toi, de mets dse objets Jpanel dans un arrayList, chaque JPanel étant sensé dessiner un rectangle, seul le premier et le dernier le font, bizarre n'est-ce pas.
Guntyr
Messages postés
8
Date d'inscription
mardi 16 mars 2010
Statut
Membre
Dernière intervention
19 août 2010
16 mars 2010 à 19:37
16 mars 2010 à 19:37
Oui, c'est bien ce que j'ai fait. Enfin, plus exactement :
Iterator<CDS> it= Tab.iterator();
(CDS étant le type des mes objets. C'est aussi avec ça que j'ai appelé mon ArrayList)
Iterator<CDS> it= Tab.iterator();
(CDS étant le type des mes objets. C'est aussi avec ça que j'ai appelé mon ArrayList)
artragis
Messages postés
481
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
6 avril 2010
146
16 mars 2010 à 19:39
16 mars 2010 à 19:39
pas besoin de mettre l'identificateur sur l'Iterator d'ailleur
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Guntyr
Messages postés
8
Date d'inscription
mardi 16 mars 2010
Statut
Membre
Dernière intervention
19 août 2010
16 mars 2010 à 19:41
16 mars 2010 à 19:41
Quand je ne le fais pas, Eclipse m'engueule et refuse de lancer le programme : il dit que la fonction "ecrireCDS" que j'utilise après sur mon iterator est pas sûre de fonctionner, vu qu'on est pas sûr que l'iterator soit un objet de type CDS... Donc si ça change rien, j'aime autant le mettre.
artragis
Messages postés
481
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
6 avril 2010
146
16 mars 2010 à 20:13
16 mars 2010 à 20:13
il faut le caster, c'est pour ça.
quand tu utilises next();
tu mets avant (CDS)it.next).ta_fonction();
quand tu utilises next();
tu mets avant (CDS)it.next).ta_fonction();
Guntyr
Messages postés
8
Date d'inscription
mardi 16 mars 2010
Statut
Membre
Dernière intervention
19 août 2010
16 mars 2010 à 20:53
16 mars 2010 à 20:53
J'avais déjà testé ça aussi... Et toujours sans succès. En même temps, si c'était un problème de cast, on ne pourrait même pas passer dans ecrireCDS
Comme la ligne (CDS)it.next).ta_fonction(); ne marchait pas, j'ai écrit ça :
CDS SS = (CDS)it.next();
SS.ecrireCDS();
Comme la ligne (CDS)it.next).ta_fonction(); ne marchait pas, j'ai écrit ça :
CDS SS = (CDS)it.next();
SS.ecrireCDS();
Guntyr
Messages postés
8
Date d'inscription
mardi 16 mars 2010
Statut
Membre
Dernière intervention
19 août 2010
17 mars 2010 à 10:38
17 mars 2010 à 10:38
Bon, j'ai essayé autre chose : J'ai "return"é mon tableau dans la classe qui prend en compte le clic sur le bouton. Là encore, quel que soit la syntaxe que j'utilise, c'est toujours le dernier élément qui est affiché. Je ne sais pas si ça apporte des indices, mais bon...
Personne n'a même une idée d'où le problème pourrait venir ? Si y'a des test a faire, je les fais volontiers.
Personne n'a même une idée d'où le problème pourrait venir ? Si y'a des test a faire, je les fais volontiers.
Guntyr
Messages postés
8
Date d'inscription
mardi 16 mars 2010
Statut
Membre
Dernière intervention
19 août 2010
17 mars 2010 à 11:10
17 mars 2010 à 11:10
RAAAAAAAAAAAAAAAAAAAAAH !!!
J'ai trouvé ! Je SAVAIS que le problème venait de ma fonction ecrireCDS ! J'avais tout simplement déclaré les variable locale en static (je sais plus trop pourquoi, d'ailleurs...) ! Donc forcement, elles bougeaient pas quand j'appelais la fonction !
Désolé, donc... J'aurais apprit plein de choses, mais je doute que ce topic soit intéressant à l'avenir. Merci pour ton aide, Artragis !
(Hop, une petite musique d'ambiance (9 secondes) pour clore le sujet : https://www.youtube.com/watch?v=tLtPrLtaRNo )
J'ai trouvé ! Je SAVAIS que le problème venait de ma fonction ecrireCDS ! J'avais tout simplement déclaré les variable locale en static (je sais plus trop pourquoi, d'ailleurs...) ! Donc forcement, elles bougeaient pas quand j'appelais la fonction !
Désolé, donc... J'aurais apprit plein de choses, mais je doute que ce topic soit intéressant à l'avenir. Merci pour ton aide, Artragis !
(Hop, une petite musique d'ambiance (9 secondes) pour clore le sujet : https://www.youtube.com/watch?v=tLtPrLtaRNo )
16 mars 2010 à 18:18
J'avais déjà vu une syntaxe similaire : Iterator it= Tab.iterator(); (sans le "new", donc) Ceci dit, même avec cette "nouvelle" syntaxe (je l'avais déjà essayée), le résultat reste le même : seul le dernier élément est affiché.