gpt4 book ai didi

java迭代器并发修改即使有预防措施

转载 作者:行者123 更新时间:2023-12-01 22:15:43 24 4
gpt4 key购买 nike

我需要从列表中递归删除元素,但即使将迭代器应用于主题的副本,我也会遇到并发修改错误。

List<Referee> referees=videogame.getGamers();
Iterator<Referee> iter= referees.iterator();

while(iter.hasNext()){
Referee ref= iter.next();
if(ref.getTheGameIsOver())
videogame.removeReferee(ref);
}

最佳答案

迭代器对其进行迭代时,您正在修改底层集合。这就是导致 ConcurrentModificationException 的原因。

请调用 remove()Iterator 本身上。它会删除导致此异常的最近迭代的项目。替换

videogame.removeReferee(ref);

iter.remove();

关于java迭代器并发修改即使有预防措施,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31078864/

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