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这种形式,因为可能造成溢出,一定要使用严格的>,==,<
    }
}

 

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