首页 > 代码库 > java ArrayList 清空元素时迭代器造成的错误
java ArrayList 清空元素时迭代器造成的错误
在 HeadFirst JAVA中,例子:攻击网站游戏
书中提供的在检查是否击中目标时的代码:
for(DotCom dotComToTest : dotComsList){ result = dotComToTest.checkYourself(userGuess); if(result.equals("hit")){ break; }else if(result.equals("kill")){ dotComsList.remove(dotComToTest); break; } }
其中使用的迭代器的方式对目标列表进行遍历,但是在执行中却出现了错误。
错误类型: java.util.AbstractList$Itr.next()
是因为ArrayList中元素清空,导致迭代器报错
多种情况可以参考
http://lggege.iteye.com/blog/249430
代码修正:
for(int i = 0; i < dotComsList.size(); i ++){ result = dotComsList.get(i).checkYourself(userGuess); if(result.equals("hit")){ break; }else if(result.equals("kill")){ dotComsList.remove(i); break; } }
java ArrayList 清空元素时迭代器造成的错误
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。