我使用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());
Run Code Online (Sandbox Code Playgroud)
输出为"A","B","B".
为什么它不起作用,它是如何在幕后工作的?
来自JavaDocs:
返回列表中的上一个元素并向后移动光标位置.可以重复调用此方法以向后遍历列表,或者与下一次来回调用混合.(请注意,对next和previous的交替调用将重复返回相同的元素.)
这里重要的部分是:( 注意,对next和previous的交替调用将重复返回相同的元素.)