在 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; } }
时间: 2024-12-20 17:07:04