Java迭代器ListIterator的误区

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

*/

猜你喜欢

转载自blog.csdn.net/qq_33473340/article/details/108104803
今日推荐