List的remove()方法的三種正確打開方式!

方法一:

倒序循環,因爲list刪除只會導致當前元素之後的元素位置發生改變,所以採用倒序可以保證前面的元素沒有變化;


for(int i=list.size()-1;i>=0;i--){
  list.remove(i);
}



方法二:

順序循環時,刪除當前位置的值,下一個值就會補到當前位置,所以需要執行i–操作;

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



方法三:

注意必須用迭代器的remove()方法,不要用list的remove,不然會發生java.util.ConcurrentModificationException 異常,此異常的解決方式在另一篇博客裏有。

if (null != list && list.size() > 0) {
    Iterator it = list.iterator();  
    while(it.hasNext()){
        Student stu = (Student)it.next();
        if (stu.getStudentId() == studentId) {
            it.remove(); //移除該對象
        }
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章