遍历集合,删除符合条件的元素时报错;
源代码:
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("删除失败");
}
}
}
本文探讨了在遍历集合过程中删除元素时遇到的并发修改错误,并提供了解决方案,即在成功删除元素后立即退出循环,以避免进一步的并发问题。
350

被折叠的 条评论
为什么被折叠?



