api文档
上面描述的方法如next,说是返回列表下一个元素,但实际操作中并不是这样,其实是取出当前游标指向的元素,然后cursor++,还有判断hasNext方法也是判断当前游标所指向的元素
我的解释
1.next(),返回的是当前游标的元素,使用完后游标cursor++
2.nextIndex(),返回的也是当前元素的游标位置(cursor从0开始)
3.previousIndex(),返回的是前一元素的游标位置
代码验证
public class Test02 {
public static void main(String[] args) {
List<String> integers = Arrays.asList("A", "B", "C", "D", "E");
ListIterator<String> iterator = integers.listIterator();
while (iterator.hasNext()) {
System.out.println(iterator.previousIndex());
System.out.println(iterator.nextIndex());
System.out.println(iterator.next());
}
}
}
/*result
-1 上一个游标为-1
0 当前游标为0
A 当前游标为0的元素(用完后cursor++)
0
1
B
1
2
C
2
3
D
3
4
E
Process finished with exit code 0
*/