遇到迭代器问题.它需要迭代ArrayList并找到除此之外的任何其他Object并打印它的名称.程序使用线程.当迭代器在相等时进入while循环时,它如何产生错误?itr.hasNext()true
堆栈跟踪:
Thread [JOE] (Suspended (exception NoSuchElementException))
ArrayList$Itr.next() line: not available [local variables unavailable]
Monster.beginFight(Monster) line: 55
Monster.run() line: 28
Run Code Online (Sandbox Code Playgroud)
方法
private void tryName(Monster monster){
Iterator<Monster> itr = room.monsters.iterator();
while(itr.hasNext()){
if (!itr.next().equals(monster)) {
System.out.println(monster.getName() + "some text "
+ itr.next().getName());
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我在ArrayList $ Itr.next()选项卡中显示:找不到源?
每次调用itr.next它都会将迭代器推进到下一个元素.你需要做一些事情:
while(itr.hasNext()) {
Monster m = itr.next();
// rest of your code using m instead of itr.next()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |