我有以下代碼顯示如何ListIterator工作,但它似乎由迭代器返回的項目不是我所期望的。java ListIterator不返回預期項目
import java.util.*;
public class IteratorExample {
public static void main(String args[]) {
ArrayList al = new ArrayList();
al.add("A");
al.add("B");
al.add("C");
ListIterator litr = al.listIterator();
System.out.print(litr.next()); // expect A
System.out.print(litr.next()); // expect B
System.out.print(litr.next()); // expect C
System.out.print(litr.previous()); // expect B
System.out.print(litr.previous()); // expect A
System.out.print(litr.next()); // expect B
System.out.print(litr.previous()); // expect A
}}
我期待看到「ABCBABA」,但示例程序給了我「ABCCBBB」。任何人都可以解釋迭代器如何工作?如果我想通過使用迭代器結果「ABCBABA」,我應該怎麼做?
在調用'下一個()'和'得到C' ,之前的結果是'C',所以'previous()'將返回'C'。基本上,當你改變方向時,你會看到剛剛返回的值。如果你不想這樣做,你可以調用'litr.previous()'而不打印出來以忽略該結果。 – khelwood