2013-12-20 50 views
1

我得到CurrentModificationException,我不知道爲什麼。這是我的代碼:當前修改例外Android迭代器

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

我已經定義puzzleArrayList<Integer>。和randomNum,PAleatorio作爲ArrayList<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

可以顯示的聲明** ** PAleatorio只是 –

+0

發佈更多的上下文的位和異常的堆棧跟蹤。 – Blackbelt

+1

在所有概率中,「難題」和「PAleatorio」指的是同一個對象。 – Rajesh

回答

1

ArrayList<Ficha> PAleatorio = finalList;

其中finalList是另一個列表與幾個Ficha 「我已經定義爲解謎和ArrayList<Integer> randomNum,PAleatorio爲ArrayList<Ficha>。」 你的意思是puzzleArrayList<Ficha>randomNumArrayList<Integer>對不對? 我用一些測試對象來回顧szenario。 java.util.ConcurrentModificationException的唯一原因可能是PAleatoriopuzzle存儲相同的參考。

+0

你是對的,我正在傳遞同一個對象! ><謝謝! – Monica

0

這可能是更好的做這樣的:

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