我使用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:
返回列表中的前一个元素并移动光标位置 向后。可以重复调用此方法以循环访问 向后列出,或混杂调用到下一个来回。 (请注意,对下一个和上一个的交替调用将返回相同的 元素重复。
这里重要的部分是:(请注意,对下一个和上一个的交替调用将重复返回相同的元素。