gpt4 book ai didi

java - 修改迭代内的列表

转载 作者:行者123 更新时间:2023-12-01 15:59:18 25 4
gpt4 key购买 nike

我们都知道这是非法的,并且会抛出ConcurrentModificationException:

for (Item i : theList) {
if (i.num == 123)
foo(i); // foo modifies theList
}

但是这个呢?

for (Item i : theList) {
if (i.num == 123) {
foo(i); // foo modifies theList
break;
}
}

由于循环在调用 theLists 的迭代器的 next 之前中断,因此不会出现 ConcurrentModificationException。但这合法吗?

最佳答案

想了想,我的结论是,必须如此。 “解决方案”是

for (Item i : theList) {
if (i.num == 123) {
theI = i;
break;
}
}
foo(theI); // foo modifies theList

但就调用 next 的频率而言,这是完全一样的。

关于java - 修改迭代内的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4323845/

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