今天在做一道编程题时,碰到了一些问题,题目要求写一个简易的个人信息管理系统,有一个删除功能,要求根据用户名查找到该用户对象,并将其删除,我第一次书写的代码是:
<span style="font-size:14px;">for (User u : al) {
if (u.getName().equals(name)) {
System.out.println("确定要删除此人吗?(1:确定,0:取消)");
if (sc.nextInt() == 1) {
al.remove(u);
System.out.println("删除成功!");
}
} else{
System.out.println("无此人信息");
}
}</span>
运行时结果报了一个Exception in thread "main" java.util.ConcurrentModificationException异常,搞了半天没想明白怎么回事,于是去网络上搜了一下,发现很多写代码的菜鸟都碰到了这个问题,看了好多人的解答和心得,获益良多,总结一下就是,这是一个并发修改异常,抛出异常的原因是,在List中,不允许遍历的同时进行删除操作,至于为什么不允许,