无法迭代List对象

J.O*_*sen 0 java eclipse oop

遇到迭代器问题.它需要迭代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()选项卡中显示:找不到源

Jef*_*rey 7

每次调用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)