Java的前一个列表迭代器
我使用Java的列表迭代器,我不明白前面的方法是如何工作的。 我得到链表的下一个元素“B”,然后我试图得到上一个元素“A”,但我得到了“B”Java的前一个列表迭代器,java,iterator,Java,Iterator,我使用Java的列表迭代器,我不明白前面的方法是如何工作的。 我得到链表的下一个元素“B”,然后我试图得到上一个元素“A”,但我得到了“B” LinkedList abc=新建LinkedList(); abc.添加(‘A’); abc.添加('B'); ListIterator迭代器=abc.ListIterator(); System.out.println(iterator.next()); System.out.println(iterator.next()); System.out.p
LinkedList abc=新建LinkedList();
abc.添加(‘A’);
abc.添加('B');
ListIterator迭代器=abc.ListIterator();
System.out.println(iterator.next());
System.out.println(iterator.next());
System.out.println(迭代器.previous());
输出为“A”、“B”、“B”
为什么它不工作,以及它在幕后是如何工作的?来自JavaDocs:
返回列表中的上一个元素并移动光标位置
向后可以重复调用此方法以遍历
向后列出,或与调用next来回混合。
(请注意,交替调用next和previous将返回相同的结果。)
元素重复。)
这里重要的部分是:(注意,交替调用next和previous将重复返回相同的元素。)可能重复的@fantaghrocco不是这个问题的重复。这个问题问为什么
hasPrevious
在开始时返回false
。
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());