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()去刪除