Comportement des méthodes hasNext() et next de la classe Iterator
Bonjour,
J'aimerai si vous le permettez, solliciter votre aide pour le problème suivant : dans le code que je vais vous postez j'ai l'impression que la les méthodes dans le titre se comportent différemment d'une fois sur l'autre.
Code:
1 2
| while(it.hasNext()) {
System.out.println(it.next().toString()); |
Dans le premier exemple la méthode fait ce que j'attends, elle m'affiche une à une les 32 cartes de mon HashSet cardDeck.
En revanche dans l'exemple suivant :
Code:
1 2 3 4 5 6 7 8 9
| while(ite.hasNext()){
if(ite.next().getColor() == "red"){
System.out.println("Here is a red card of the hand : "+ite.next());
theRedCard.setFamily(ite.next().getFamily());
theRedCard.setValue(ite.next().getValue());
theRedCard.setColor(ite.next().getColor());
break;
}
} |
J'ai cherché la première carte de couleur rouge dans mon HashSet, or à la ligne du println il me donne non pas la première carte rouge mais la deuxième. Et ensuite quand je fais un println sur theRedCard (Objet de classe Carte dans lequel j'ai voulu remettre les attributs via les setters de la carte rouge que j'ai trouvé dans le paquet ), il me donne une autre carte rouge que celle que j'ai trouvé.
Si quelqu'un a une idée de ce qui m'échappe, je l'en remercie par avance de m'en faire part.