1.迭代器的遍歷原理,首先,我們先來聊一下迭代器的迭代原理,這裡以集合為例。通常迭代器在集合中可以作為遍歷集合中元素的一種方式,如下代碼,通過集合的list.Iterator()方法得到迭代器,然後進入while迴圈,執行it.hasNext()語句判斷集合中下一個對象是否存在,存在進迴圈。執行it ...
1.迭代器的遍歷原理,
首先,我們先來聊一下迭代器的迭代原理,這裡以集合為例。通常迭代器在集合中可以作為遍歷集合中元素的一種方式,如下代碼,通過集合的list.Iterator()方法得到迭代器,然後進入while迴圈,執行it.hasNext()語句判斷集合中下一個對象是否存在,存在進迴圈。執行it.nest()拿到下一個對象,然後再回到it.hasNext()....知道it.hasNext()判斷無下一個對象的時候,結束迴圈。這裡特別提一下集合中的增強for也就是foreach迴圈的底層也是迭代器迴圈
Iterator it=list.iterator(); while(it.hasNext()){ System.out.println(it.next()); }
2.迭代器的記憶體分析,通過迭代器刪除對象可以保證兩個線程的同步(可以去看迭代器的刪除方法和集合刪除方法的源碼)
總結,迭代過程中不能使用集合的remove方法刪除,只能使用迭代器的it.remove()去刪除