gpt4 book ai didi

Java:在迭代可迭代对象时更改其属性

转载 作者:行者123 更新时间:2023-12-01 16:41:37 24 4
gpt4 key购买 nike

以下代码只是为了产生问题的示例:

 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)

我该如何解决这个问题?

最佳答案

是否有理由不能将源列表复制到目标列表然后对其进行排序?

Collection<Integer> dest = new ArrayList<Integer>(src);Collections.sort(dest);

关于Java:在迭代可迭代对象时更改其属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1622084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com