下面的代碼改變一個迭代對象的屬性只是產生問題的例子:的Java:在遍歷它
public static void main(String[] args) {
Collection<Integer> src = new ArrayList<Integer>();
Collection<Integer> dest = new ArrayList<Integer>();
src.add(2);
src.add(7);
src.add(3);
src.add(2201);
src.add(-21);
dest.add(10);
while (src.size() != 0) {
for (int i : dest) {
int min = Collections.min(src);
dest.add(min);
src.remove(min);
}
}
}
我想要做的就是從SRC在到dest移動一切具體的順序。 (在這裏,就是爲最小值,但是這只是從我的真正的問題簡單化。)不過,我修改DEST同時遍歷它,並收到以下錯誤:
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
at java.util.AbstractList$Itr.next(Unknown Source)
at nth23.experimental.MoveBetweenSets.main(MoveBetweenSets.java:25)
我怎樣才能解決這個?
基於「我想要做的是從特定的順序移動一切從src到dest」 - 不能你的排序src然後只需添加所有目標? (Collections.sort,Collections.addAll)? –