gpt4 book ai didi

java - 并发修改异常?

转载 作者:行者123 更新时间:2023-12-01 07:33:19 25 4
gpt4 key购买 nike

我正在尝试按开始时间对时间跨度列表(表示为具有开始时间和结束时间的 Time[] 数组)进行排序。我正在尝试使用以下嵌套循环来执行此操作:

            for (Time[] span : workingList){
Time[] compareTo = workingList.get(0);

for (Time[] inSpan : workingList){
if (inSpan[0].before(compareTo[0])){
compareTo = inSpan;
}
}
workingList.remove(compareTo);
toReturn.add(compareTo);
}

}

但它抛出了 java.util.ConcurrentModificationException在线for (Time[] span : workingList) (上面的那个)。我以前从未见过这个异常,有人可以向我解释一下它的含义以及导致它的原因吗?

我也愿意接受更好的算法建议。

最佳答案

workingList.remove(compareTo);

您在迭代集合时修改集合。

你应该使用类似的东西:

ListIterator<Time[]> it = workingList.listIterator();

while (it.hasNext()) {
Time[] time = it.next();
..
it.remove();
}

还有一些不使用列表迭代器的方法,但这似乎更正确。

关于java - 并发修改异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15444391/

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