首先這個iterator的next()源碼,不知爲何在try出現了一些冗餘,這個i的定義是多餘的?但是有可能是爲了程序可理解性的考慮
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class Ans {
public static void main(String[] args) {
ArrayList<Integer> arr = new ArrayList<>(){{add(1);add(2);add(3);}};
ListIterator<Integer> iter = arr.listIterator(); //細節:ListIterator 有add方法,普通的Iterator沒有,因爲對於Set來說在某一位置插入元素是沒有意義的
iter.add(4);
iter.add(5); //這裏的插入應該全部插入到當前位置
System.out.println(arr);
System.out.println(iter.next()); //導致這裏next()打印的還是原始列表的第一個節點
iter.remove(); //這裏移除的是當前位置的元素,當前位置是1,next是2
System.out.println(arr);
System.out.println(iter.next()); //有一個tips,equals比較兩個數大小時,不要使用a-b這種形式,因爲可能造成溢出,一定要使用嚴格的>,==,<
}
}