java中使用for循環刪除List集合的陷阱

記錄下,java中使用for循環遇到的問題

(錯誤示範:使用for循環刪除list集合)

   for(int i=0;i<list.size();i++) {
        if(list.get(i)!=0) {
            list.remove(i);
        }
    }

錯誤的原因是每刪除list集合的一個元素,list的大小都在發生改變,從而導致索引也在發生改變,從而刪除的時候會漏過一些元素。

(正確示範:使用迭代器刪除list集合)

Iterator<Integer> it=list.iterator();
    while(it.hasNext()) {
        Integer m=it.next();
        if(m!=0) {
            it.remove();
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章