在 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;
}
}