我在下面的代码中得到此并发修改异常错误,因为我试图在迭代时删除元素..代码在下面..
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();
}
您能否告知如何避免此错误??
答案 0 :(得分:5)
无法修改List
并使用在修改获得Iterator
的{{1}}之前创建的List
,否则为{ {1}}将被抛出。为避免这种情况,请勿在{{1}}内调用List
。
由于违规ConcurrentModificationException
的目的是打印列表内容,因此没有理由使用list.add()
:
while
答案 1 :(得分:1)
您正在尝试在迭代时修改列表,这可能会导致ConcurrentModificationExceptio
n
list.add(new Emp("Anand","Manager",56000)); //