Comment savoir le nombre de boucles qu'a fait un iterator ?
Je voudrai récupérer cette valeur pour l'afficher dans ma page.
merci
Version imprimable
Comment savoir le nombre de boucles qu'a fait un iterator ?
Je voudrai récupérer cette valeur pour l'afficher dans ma page.
merci
tu dois compter toi même...
Code:
1
2
3
4
5 int count = 0; while( i.hasNext() ) { i.next(); count++ // do job }
Sinon, tu peut écrire un "wrapper" qui enrobe un Iterator ce qui peut être plus élégant
And a usage like itCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 public class CounterIterator<E> implements Iterator<E> { private Iterator<E> wrapped = null; private int count = 0; public CounterIterator(Iterator<E> wrapped) { this.wrapped = wrapped; } public boolean hasNext() { if( wrapped == null ) return false; return wrapped.hasNext(); } public E next() { if( !hasNext() ) throw new NoSuchElementException(); E result = this.wrapped.next(); count++; return result; } public void remove() { if( wrapped == null ) throw new IllegalStateException(); this.wrapped.remove(); count--; // depends on what you want mean.... } public int getTraversedEntriesCount() { return count; } }
Code:
1
2
3
4
5
6 CounterIterator ci = new CounterIterator(i); while( ci.hasNext() ) { ci.next(); // do job } ci.getTraversedEntriesCount(); // récupere le nombre d'element parcourus
Sinon tu y a accès via la propriété "status"
Citation:
<s:iterator value="pageLines" status="row">
${row.count}: <s:property/>
</s:iterator>
Ok c'est ca que je voulais mais j'y suis arrivé atrement (en récup érant simplement la taille de la liste que je parcours avec cet iterator)