关于检索列表时出错

use*_*492 -2 java

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

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

 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));
Run Code Online (Sandbox Code Playgroud)

而我正在检索的方式是..

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();
          }
Run Code Online (Sandbox Code Playgroud)

你能告诉我这个错误是如何避免的吗?

hmj*_*mjd 5

这是不可能的修改List并使用Iterator之前被的修饰而产生List从其中List获得,否则ConcurrentModificationException将被抛出.要避免,不要list.add()在里面打电话while.

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

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

for (Emp e: list)
{
    e.display();
}
Run Code Online (Sandbox Code Playgroud)