1. 程式人生 > >List集合如何刪除物件

List集合如何刪除物件

//如果在迴圈的過程中呼叫集合的remove()方法,就會導致迴圈出錯,例如:  
for(int i=0;i<list.size();i++){  
    list.remove(...);  
}  

迴圈過程中list.size()的大小變化了,就導致了錯誤。
所以,如果你想在迴圈語句中刪除集合中的某個元素,就要用迭代器iterator的remove()方法,因為它的remove()方法不僅會刪除元素,還會維護一個標誌,用來記錄目前是不是可刪除狀態,例如,你不能連續兩次呼叫它的remove()方法,呼叫之前至少有一次next()方法的呼叫。

正確的刪除做法是:

Iterator it = list.iterator();
int
index = 0; while (it.hasNext()) { Object obj = it.next(); if (needDelete(obj)) //needDelete返回boolean,決定是否要刪除 { it.remove(); //todo delete } index ++; }