在对集合进行迭代的时候删除其中的元素 最好使用迭代器Iterator的remove方法进行删除
-
Iterator ite=list.iterator(); while(ite.hasNext()){ Object o=ite.next(); if(/*此处写你希望o满足的删除条件*/) ite.remove(); }
不能在对一个List进行遍历的时候将其中的元素删除掉
解决办法是,你可以先将要删除的元素用另一个list装起来,等遍历结束再remove 掉
可以这样写
-
List delList = new ArrayList();//用来装需要删除的元素 for(Information ia:list) if(ia.getId()==k){ n++; delList.add(ia); } list.removeAll(delList);//遍历完成后执行删除
这里的for循环没有涉及到迭代器,也就没有对集合是否发生改变进行判断,所以不会抛出异常
-
for(int i=0;iString str=list.get(i); if("bbb".equals(str)){ list.remove(str); } }