for迴圈中移除元素問題
阿新 • • 發佈:2018-12-18
java list移除新增元素操作
for迴圈中移除元素一般會報錯
java.util.ConcurrentModificationException
還是建議用iterator
之前自己寫過有個邏輯用到了類似結構沒報錯 ,for迴圈中加了break所以被改變的list不會訪問第二次也就不會報錯了。
邏輯是如果存在物件移動到第一位,大致結構如下
for (User item : list) { if ("佩奇 ".equals(item.getName())) { // 移出第一位不會有問題 list.remove(item); list.add(0, item); break; //跳出迴圈 } }
還有一種方式移除元素利用下標
for(int i =0;i<list.size();i++){
if(i%2==0){
list.remove(list.get(i));
}
}