当前位置: 首页 > 面试题库 >

parallelModificationException

曹钊
2023-03-14
问题内容

在下面的代码段中,我尝试处理电子表格,但需要排除临时列。我知道我这样做的粗略方法,将异常放入ArrayList并处理每个列表,并且在当前行列上递增都是不正确的,但是您知道就可以做到了。

但是,我遇到了标题为错误的错误,我认为该错误永远不会发生。我只是遍历ArrayList进行比较,而不修改任何内容。错误在哪里?有没有更好的方法来处理例外列表?

ArrayList noProcess = new ArrayList();
Iterator itr00 = noProcess.iterator();
Iterator itr01 = noProcess.iterator();
noProcess.add(new Integer("5"));
noProcess.add(new Integer("18"));
....
 boolean include=true;
  for(int i=0;i<archive.length;i++){
    for (int j = 0; j < archive[i].length; j++) {
      while (itr00.hasNext()) {
        if (j == ( (Integer) itr00.next()).intValue())
          include = false;
      }
      if (include) {...

问题答案:

Iterable一旦在其上创建迭代器(通过迭代器除外),就无法更改其内容,否则,一旦移动迭代器,您将获得ConcurrentModificationException-
创建一个迭代器,然后执行do noProcess.add(new Integer("5"));,然后再进行迭代器。

另外,您创建了 两个 迭代器-您也不应该这样做-这很疯狂。



 类似资料:

相关阅读

相关文章

相关问答