下面的代码改变一个迭代对象的属性只是产生问题的例子:的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)? –