7
votes

Comment déterminer le dernier élément lors de l'utilisation d'un itérateur?

J'aime utiliser A pour la boucle avec le principe d'itérateur, comme xxx

Question: Comment puis-je déterminer si l'élément actuel est le dernier?

avec un propre index comme int = 0; i c'est possible avec i == collection.Size () - 1 , mais pas bien. Est-il également possible de déterminer le dernier élément avec un itérateur pour l'exemple ci-dessus?


2 commentaires

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.


3 Réponses :


8
votes

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
}


2 commentaires

Oui, mais vous n'avez pas accès à l'itérateur avec la boucle améliorée pour 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?



3
votes

1 commentaires

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. :)



5
votes

Utilisez simplement le < Code> hasnext méthode. xxx

normalement, nous utilisons un itérateur comme suit: xxx < / pré>


0 commentaires