1. 程式人生 > >淺談迭代器的刪除方法和集合的刪除方法

淺談迭代器的刪除方法和集合的刪除方法

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