java編程思想 第十七章 iterator中的探索

 

首先這個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這種形式,因爲可能造成溢出,一定要使用嚴格的>,==,<
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章