关于检索列表时出错

时间:2012-08-06 14:10:19

标签: java

  

可能重复:
  Regarding concurrent modification Exception

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

 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();
          }

您能否告知如何避免此错误??

2 个答案:

答案 0 :(得分:5)

无法修改List并使用在修改获得Iterator的{​​{1}}之前创建的List,否则为{ {1}}将被抛出。为避免这种情况,请勿在{{1​​}}内调用List

由于违规ConcurrentModificationException的目的是打印列表内容,因此没有理由使用list.add()

while

答案 1 :(得分:1)

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

list.add(new Emp("Anand","Manager",56000)); //