Comment faire un itérateur??? [Résolu]

Messages postés
109
Date d'inscription
mardi 13 avril 2004
Dernière intervention
4 juin 2008
- - Dernière réponse : Chris_LaFouine
Messages postés
109
Date d'inscription
mardi 13 avril 2004
Dernière intervention
4 juin 2008
- 18 nov. 2005 à 13:23
J'explique mon problème...



J'ai un projet à faire en Java (j'utilise la version 1.5.0), je dois faire un programme qui permette de répondre à un QCM...

Jusque là rien de bien compliqué... je vous passe les détails mais en gros...



J'ai une classe Reponse avec pleins d'attributs (4 en fait...) et une classe Question (qui a aussi ses attributs...).

Comme une Question contient plusieurs Réponses, j'ai donc mis dans ma classe Question ceci :

private ArrayList<Reponse> _alReponses;



Mon problème est le suivant :

Est-il possible de faire un itérateur dans ma classe Question pour
qu'ensuite, dans mon interface graphique (donc une autre classe), je
puisse faire un truc dans ce style :

Question q=new Question(...);

for(Reponse r : q) {

System.out.println(r.toString());

}
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
109
Date d'inscription
mardi 13 avril 2004
Dernière intervention
4 juin 2008
3
Merci
C'est bon, j'ai trouvé...



J'ai fait :

public class Reponse implements Iterable {



Et ensuite, j'ai fait :

public Iterator<Reponse> iterator() {

return _alReponses.iterator();

}



Merci quand meme

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 95 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Chris_LaFouine
Messages postés
109
Date d'inscription
mardi 13 avril 2004
Dernière intervention
4 juin 2008
3
Merci
C'est pas tout à fait ça en fait, pour l'implémentation, il faut faire :



public class Reponse implements Iterable<Reponse> {

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 95 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Chris_LaFouine
Messages postés
64
Date d'inscription
mardi 4 octobre 2005
Dernière intervention
2 août 2006
0
Merci
je ne sais pas si je comprend bien le problème
Ca ne va pas si tu fais simplement quelque chose comme ceci ? :

Question q=new Question(...);
for (int i=0; i<q._alReponse.size(); i++) {
System.out.println(((Reponse)q._alReponse.get(i)).toString());
}
Commenter la réponse de luuuuudooooo
Messages postés
109
Date d'inscription
mardi 13 avril 2004
Dernière intervention
4 juin 2008
0
Merci
Je sais qu'on peut faire comme ça, mais je trouve que :

for(Reponse r : q)

est plus lisible que :

for (int i=0; i<q._alReponse.size(); i++)



même si ça fait la même chose! Mais si on peut pas faire ce que je proposai, tant pis, je me contenterai de ta solution ;)
Commenter la réponse de Chris_LaFouine
Messages postés
358
Date d'inscription
jeudi 24 octobre 2002
Dernière intervention
30 mars 2011
0
Merci
ça devrait marcher. mais il faut faire

for(Reponse r : q._alReponse)
Commenter la réponse de kaloway
Messages postés
14
Date d'inscription
dimanche 26 novembre 2000
Dernière intervention
20 novembre 2005
0
Merci
Je ne suis pas specialiste mais je pense qu'il faut que ta classe
implement l'interface Iterable pour que la boucle for each fonctionne.



En gros tu devrais avoir



public class Reponse implements Iterable {

...



et ensuite il y certainement une fonction de l'interface Iterable a coder mais je ne sais pas quel est cette fonction.

J'espere que cela t'aidera. A +
Commenter la réponse de bernardgautier

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.