一、Iterator接口容許返回很是大的數據;java
二、使用java的list、set返回大量數據就須要大量堆內存;code
五、ArrayList 的Iterator 實現:索引
private class Itr implements Iterator<E> {//內部類 //do something }
(1) Itr 內部定義了三個 int 型的變量:cursor、lastRet、expectedModCount;接口
(2) cursor 表示下一個元素的索引位置,lastRet 表示上一個元素的索引位置;內存
(3)modCount 用於記錄 ArrayList 集合的修改次數;it
(4)expectedModCount預期被修改的次數;ast
六、在java中,遍歷並刪除List中的元素,一般使用如下代碼:class
(1)正確代碼:變量
(2)錯誤代碼:List
(3)緣由剖析:
七、ArrayList內部實現的Iterator:
(1) private class Itr implements Iterator<E>
Iterator<String> it=aList.iterator();
(2) private class ListItr extends Itr implements ListIterator<E>
ListIterator<String> listIt = aList.listIterator();