我得到了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>
。并randomNum
,PAleatorio
为ArrayList<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"));
答案 0 :(得分:1)
“我之前将拼图定义为ArrayList<Integer>
。并将randomNum,PAleatorio定义为ArrayList<Ficha>
。”
您的意思是puzzle
ArrayList<Ficha>
和randomNum
ArrayList<Integer>
对吗?
我用一些测试对象重新审视了szenario。 java.util.ConcurrentModificationException
的唯一原因可能是PAleatorio
和puzzle
存储了相同的引用。
答案 1 :(得分:0)
这样做可能会更好:
int counter = 0;
do{
PAleatorio.add(index.get(counter),itFichas.get(counter));
counter++;
}while(counter <= itFichas.size() && counter <= index.size());