遍历集合时候出现的异常Exception in thread "main" java.util.ConcurrentModificationException
这问题我之前也遇到过,原因是你遍历该集合时,对该集合进行了删除元素的操作导致的,如果你有删除元素的必要,建议赋值到另一个集合,然后对他进行删除操作
try {
fis = new FileInputStream("d:/tongxun/info.txt");
ois = new ObjectInputStream(fis);
list = (ArrayList)ois.readObject();
System.out.println("请输入要删除的ID号:");
k=sb.nextInt();
for(Information ia:list)
if(ia.getId()==k){
n++;
list.remove(ia);}
l-=n;
ois.close();
fis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这个问题是说,你不能在对一个List进行遍历的时候将其中的元素删除掉
解决办法是,你可以先将要删除的元素用另一个list装起来,等遍历结束再remove掉
可以这样写
List delList = new ArrayList();//用来装需要删除的元素
for(Information ia:list)
if(ia.getId()==k){
n++;
delList.add(ia);
}
list.removeAll(delList);//遍历完成后执行删除