-2

可能重复:
关于并发修改异常

我在下面的代码中遇到了这个并发修改异常错误,因为我试图在迭代时删除元素..代码在下面..

 List  list=new ArrayList ();
          list.add(new Emp("Saral","Trainer",34500));
          list.add(new Emp("Saral","Trainer",36000));
          list.add(new Emp("Saral","Trainer",33000));
          list.add(new Emp("Sachin","Programmer",24000));

我检索的方式是..

System.out.println("Content of list are : ");
          ListIterator itr1=list.listIterator();
          while(itr1.hasNext())
          {
              list.add(new Emp("Anand","Manager",56000)); //
            Emp e=(Emp)itr1.next();  
            e.display();
          }

您能否建议如何避免此错误..?

4

2 回答 2

5

不能修改 aList并使用Iterator在修改之前创建的Lista List,否则ConcurrentModificationException将抛出 a 。为避免,请勿list.add()while.

由于违规的目的while是打印列表的内容,因此没有理由使用Iterator

List<Emp> list = new ArrayList<Emp>();  

for (Emp e: list)
{
    e.display();
}
于 2012-08-06T14:14:20.493 回答
1

您正在尝试在迭代时修改列表,这可能会导致ConcurrentModificationException

list.add(new Emp("Anand","Manager",56000)); //
于 2012-08-06T14:14:06.907 回答