java.util.ConcurrentModificationException异常

遍历集合时候出现的异常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);//遍历完成后执行删除 

你可能感兴趣的:(java.util.ConcurrentModificationException异常)