小智 99
我有同样的问题,发现使用ListIterator工作.与上面的测试类似:
List<String> list = Arrays.asList("zero", "one", "two");
ListIterator iter = list.listIterator();
while (iter.hasNext()) {
System.out.println("index: " + iter.nextIndex() + " value: " + iter.next());
}
Run Code Online (Sandbox Code Playgroud)
确保在实际获得next()之前调用nextIndex.
Tom*_*ift 28
这是使用自己的变量并保持简洁的方法:
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);
}
Run Code Online (Sandbox Code Playgroud)
输出(你猜对了):
0: zero
1: one
2: two
Run Code Online (Sandbox Code Playgroud)
优点是你不要在循环中递增索引(尽管你需要注意每个循环只调用Iterator#next - 只需在顶部执行).
Rob*_*mme 20
你可以ListIterator用来做计数:
final List<String> list = Arrays.asList("zero", "one", "two", "three");
for (final ListIterator<String> it = list.listIterator(); it.hasNext();) {
final String s = it.next();
System.out.println(it.previousIndex() + ": " + s);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
144761 次 |
| 最近记录: |