遍历集合,删除符合条件的元素时报错;
源代码:
for (Book b : books) {
if (id.equals(b.getId())){
if(books.remove(b)){
//删除成功
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
}
}
报错原因:删除元素后被便利的集合books发生了并发修改,所以必须在删除操作完成后跳出循环。
解决:
for (Book b : books) {
if (id.equals(b.getId())){
if(books.remove(b)){
//删除成功
System.out.println("删除成功");
break;
}else{
System.out.println("删除失败");
}
}
}