我試圖做一些caluclation在主線程列表中的每個值,如下ConcurrentModificationException的名單上的大小()
for (int i = 0; i < list.size(); i++) {
//Do some task
}
柏迪我得到的則爲list.size的ConcurrentModificationException的()。
它是簡單的java.util.List
Caused by: java.util.ConcurrentModificationException
at java.util.AbstractList$SubAbstractList.size(AbstractList.java:360)
at java.util.Collections$SynchronizedCollection.size(Collections.java:440)
如何解決這個問題?
完整代碼:
private List<Double> computeValue(@NonNull List<Double> list1, List<Double> list2) {
List<Double> computedList = new ArrayList<>();
for (int i = 0; i < list1.size(); i++) {
computedList.add(-((list1.get(i) + list2.get(i))/2));
}
return computedList;
}
您是否正在刪除列表中的元素,而你正在迭代呢?請顯示「//執行某項任務」中的代碼。 – hamena314
@ hamena314請檢查編輯,我已經添加了完整的代碼,並沒有更改值。 – Praveen
我不知道「List」的實現會拋出CME的大小,因爲這不是迭代的一部分。你確定它在那裏發生?列表的具體類型是什麼? –