之前在 Java 的列表迭代器中



我使用Java的列表迭代器,我不明白以前的方法是如何工作的。 我得到链表"B"的下一个元素,然后我尝试获取前一个元素"A",但我得到"B"。

LinkedList<Character> abc = new LinkedList<Character>();
abc.add('A');
abc.add('B');
ListIterator<Character> iterator = abc.listIterator();
System.out.println(iterator.next());
System.out.println(iterator.next());
System.out.println(iterator.previous());

输出为"A"、"B"、"B"。

为什么它不起作用,它在幕后是如何工作的?

来自JavaDocs:

返回列表中的前一个元素并移动光标位置 向后。可以重复调用此方法以循环访问 向后列出,或混杂调用到下一个来回。 (请注意,对下一个和上一个的交替调用将返回相同的 元素重复。

这里重要的部分是:(请注意,对下一个和上一个的交替调用将重复返回相同的元素。

最新更新