Parcourir un hashset en dehors de sa classe

cs_Romain2 Messages postés 1 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 2 avril 2005 - 2 avril 2005 à 16:54
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 2 avril 2005 à 22:47
excusez si mon problème paraît naïf mais je suis débutant en java
j'ai une classe avec un objet qui ne contient qu'un hashset. je voudrais parcourir ce hashset dans la classe principale (pour le modifier au fur et à mesure avec des entrées clavier). mais ceci ne semble pas fonctionner. je joins un exemple:

class probleme {

public static void main (String [] args) {

truc machin = new truc ();
machin.etats.add (new Integer (1));
machin.etats.add (new Integer (2));

Iterator j = machin.etats.iterator () ;
while (j.hasNext ()) {
System.out.println("coucou");
}
}
}

class truc {
public HashSet etats;
truc () { etats = new HashSet () ;};
}



essayez, il affiche coucou sans arrêt, comme si Iterator n'avancait pas dans le hashset. savez-vous comment parcourir ce hashset ?
merci d'avance

1 réponse

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
2 avril 2005 à 22:47
C'est normal!
En fait, la méthode hasNext() de class Iterator n'avance pas l'Iterator d'un pas, mais contrôle uniquement s'il existe un suivant.
Il suffit donc d'appeler j.next(); dans ta boucle, qui fera alors avancer l'iterator. Du coup il restera plus en boucle infnie sur le premier élément mais itérera dans ta collection...
A plus.

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0
Rejoignez-nous