遍歷刪除list中的元素有很多種方法,當運用不當的時候就會產生問題。下面主要看看以下幾種遍歷刪除list中元素的形式:
1.通過增強的for迴圈刪除符合條件的多個元素
2.通過增強的for迴圈刪除符合條件的乙個元素
3.通過普通的for刪除刪除符合條件的多個元素
4.通過iterator進行遍歷刪除符合條件的多個元素
/**
* 使用增強的for迴圈
* 在迴圈過程中從list中刪除非基本資料型別以後,繼續迴圈list時會報concurrentmodificationexception
*/
public void listremove()
}
/**
* 像這種使用增強的for迴圈對list進行遍歷刪除,但刪除之後馬上就跳出的也不會出現異常
*/
public void listremovebreak()
} }
/**
* 這種不使用增強的for迴圈的也可以正常刪除和遍歷,
* 這裡所謂的正常是指它不會報異常,但是刪除後得到的
* 資料不一定是正確的,這主要是因為刪除元素後,被刪除元素後
* 的元素索引發生了變化。假設被遍歷list中共有10個元素,當
* 刪除了第3個元素後,第4個元素就變成了第3個元素了,第5個就變成
* 了第4個了,但是程式下一步迴圈到的索引是第4個,
* 這時候取到的就是原本的第5個元素了。
*/
public void listremove2()
system.out.println(students);
}
遍歷刪除List中的元素
使用iterator的方式可以順利刪除和遍歷 正確方式 public void iteratorremove system.out.println students 使用增強的for迴圈 錯誤方式 在迴圈過程中從list中刪除非基本資料型別以後,繼續迴圈list時會報concurrentmodifi...
Freemarker中如何遍歷List
freemarker中如何遍歷list 在freemarker應用中經常會遍歷list獲取需要的資料,並對需要的資料進行排序加工後呈現給使用者。那麼在freemarker中如何遍歷list,並對list中資料進行適當的排序呢?一 freemarker中list指令簡單介紹 要想在freemarker...
Freemarker中如何遍歷List
freemarker中list指令簡單介紹 要想在freemarker中遍歷list,必須通過使用list指令,即 list sequence as item sequence是集合 collection 的表示式,item是迴圈變數的名字,不能是表示式。當在遍歷sequence時,會將遍歷變數的值...