当前修改例外Android迭代器

时间:2013-12-20 11:04:16

标签: java android iterator

我得到了CurrentModificationException,我无法弄明白为什么。这是我的代码:

Iterator<Ficha> itFichas = puzzle.iterator();
Iterator<Integer> index = randomNum.iterator();
while(itFichas.hasNext() && index.hasNext()){
    PAleatorio.add(index.next(),itFichas.next());
}

我之前已将puzzle定义为ArrayList<Integer>。并randomNumPAleatorioArrayList<Ficha>

为什么我得到例外?

编辑:

ArrayList<Ficha> PAleatorio = finalList;

其中finalList是另一个包含多个Ficha的列表:

ArrayList<Ficha> finalList = new ArrayList<Ficha>();

finalList.add(new Ficha("1"));
finalList.add(new Ficha("2"));
finalList.add(new Ficha("3"));
finalList.add(new Ficha("4"));

2 个答案:

答案 0 :(得分:1)

“我之前将拼图定义为ArrayList<Integer>。并将randomNum,PAleatorio定义为ArrayList<Ficha>。” 您的意思是puzzle ArrayList<Ficha>randomNum ArrayList<Integer>对吗? 我用一些测试对象重新审视了szenario。 java.util.ConcurrentModificationException的唯一原因可能是PAleatoriopuzzle存储了相同的引用。

答案 1 :(得分:0)

这样做可能会更好:

int counter = 0;
do{
    PAleatorio.add(index.get(counter),itFichas.get(counter));
   counter++;
}while(counter <= itFichas.size() && counter <= index.size());