我使用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”。
为什么不起作用,它在幕后如何起作用?
答案 0 :(得分:7)
来自JavaDocs:
返回列表中的上一个元素并移动光标位置 向后。可以重复调用此方法以遍历 向后列出列表,或与对next的调用进行混合来回移动。 (请注意,交替调用下一个和上一个将返回相同的 元素。)
这里重要的部分是:(请注意,交替调用next和next将重复返回相同的元素。)