【发布时间】:2015-06-26 17:27:01
【问题描述】:
我需要从列表中递归删除元素,但即使将迭代器应用于主题的副本,我也会遇到并发修改错误。
List<Referee> referees=videogame.getGamers();
Iterator<Referee> iter= referees.iterator();
while(iter.hasNext()){
Referee ref= iter.next();
if(ref.getTheGameIsOver())
videogame.removeReferee(ref);
}
【问题讨论】:
-
removeReferee是做什么的?它是否从getGamers返回并由iter迭代的同一个List中删除? -
或者在使用 Java 8 时:
videogame.getGamers().removeIf(Referee::getTheGameIsOver);...
标签: java concurrency iterator