【发布时间】:2015-04-03 02:04:36
【问题描述】:
我有以下代码:
LinkedList<String> list = new LinkedList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("6");
ListIterator<String> iterator = list.listIterator();
String str = iterator.next();
System.out.println(str);
str = iterator.next();
System.out.println(str);
str = iterator.next();
System.out.println(str);
System.out.println("switch direction");
str = iterator.previous();
System.out.println(str);
str = iterator.previous();
System.out.println(str);
输出是这样的:
1
2
3
switch direction
3
2
我希望在第一次 iterator.previous() 调用时打印 2,但事实并非如此。它给了我相同的元素,就像这个函数在第一次调用时什么都不做。
如果我从最后一个迭代开始到第一个迭代,然后我将中间的方向改回最后一个,也会发生同样的事情。
是否有设计原因,或者它可能只是 Java 列表迭代器中的一个错误?
我正在使用:
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
【问题讨论】:
标签: java arrays list iterator listiterator