Je suis en utilisant un Itérateur pour parcourir la collection
et je veux de l'actuel indice de boucle.
toutes les idées de comment faire cela ?
Réponses
Trop de publicités?J'ai eu la même question et a découvert à l'aide d'un ListIterator travaillé. Similaire au test ci-dessus:
List<String> list = Arrays.asList("zero", "one", "two");
ListIterator iter = list.listIterator();
while (iter.hasNext()) {
System.out.println("index: " + iter.nextIndex() + " value: " + iter.next());
}
Assurez-vous que vous appelez la nextIndex AVANT de vous apprendre la méthode next().
Voici un moyen de le faire à l'aide de votre propre variable et de le garder concis:
List<String> list = Arrays.asList("zero", "one", "two");
int i = 0;
for (Iterator<String> it = list.iterator(); it.hasNext(); i++) {
String s = it.next();
System.out.println(i + ": " + s);
}
De sortie (vous l'aurez deviné):
0: zero
1: one
2: two
L'avantage est que vous n'avez pas d'incrément de votre index à l'intérieur de la boucle (bien que vous devez être prudent de n'appeler qu'Itérateur#prochaine une fois par boucle - just do it en haut).