List集合如何刪除物件
阿新 • • 發佈:2019-01-24
//如果在迴圈的過程中呼叫集合的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 ++;
}