J'aime utiliser A pour la boucle avec le principe d'itérateur, comme Question: Comment puis-je déterminer si l'élément actuel est le dernier? p> avec un propre index comme int = 0; i
i == collection.Size () - 1 code>, mais pas bien. Est-il également possible de déterminer le dernier élément avec un itérateur pour l'exemple ci-dessus? P> p>
3 Réponses :
En effet, le itérateur # hasnext code>
méthode renvoie une détermination booléenne Si l'itérateur retournera un autre élément avec la méthode code> suivante suivante.
Votre itération peut être placé comme suit: P>
Iterator<String> iterator = collectionWithString.iterator(); while(iterator.hasNext()) { String current = iterator.next(); // if you invoke iterator.hasNext() again you can know if there is a next element }
Oui, mais vous n'avez pas accès à l'itérateur avec la boucle améliorée pour code> ci-dessus.
@Duncanjones Oui, mais l'OP a également demandé est-il également possible de déterminer le dernier élément avec un itérateur pour l'exemple ci-dessus? I>
Ce n'est pas possible avec un amélioré pour la boucle A> sans entretenir votre propre compteur. Pour être honnête, c'est mon seul facteur décisif lorsque je choisis le type de boucle à utiliser. P>
Lorsque vous utilisez un itérateur code>, on a accès au
hasnext () code>
méthode qui retournera false lorsque vous traitez le dernier élément. P>
Merci. C'était aussi mon facteur décisif pour le type de boucle. Comme il se trouve, ce sera mon facteur déterminant pour l'avenir. :)
Utilisez simplement le < Code> hasnext code> méthode. normalement, nous utilisons un itérateur code> comme suit: p>
Non. Si vous souhaitez vérifier la position, passez à l'autre style.
La boucle améliorée est plutôt spécialisée. Son travail consiste à fournir une représentation très courte et simple pour des cas très simples, mais fréquemment survenants. Si vous avez du mal à obtenir ce que vous voulez, ne l'utilisez pas.