Android 在迭代器中渲染每个对象?

Android 在迭代器中渲染每个对象?,android,iterator,return,render,Android,Iterator,Return,Render,我的android应用程序有点问题。我有一个while循环,应该循环遍历迭代器中的每个对象并渲染它们。问题是while循环不会渲染所有对象;它呈现的值比我指定的值少一个。例如,如果迭代器中有5个对象,则仅渲染4个对象,迭代器中的最后一个对象不可见(但仍然存在)。这是代码 enemyIterator = enemies.iterator(); while (enemyIterator.hasNext()) { Enemy zombie = enemyIterator.next();

我的android应用程序有点问题。我有一个while循环,应该循环遍历迭代器中的每个对象并渲染它们。问题是while循环不会渲染所有对象;它呈现的值比我指定的值少一个。例如,如果迭代器中有5个对象,则仅渲染4个对象,迭代器中的最后一个对象不可见(但仍然存在)。这是代码

enemyIterator = enemies.iterator();
while (enemyIterator.hasNext())
{
    Enemy zombie = enemyIterator.next();
    zombie.update();
    batch.draw(zombie.getCurrentFrame(), zombie.getPosition().x, 
            zombie.getPosition().y);
}
我怀疑它与“hasNext()”方法有关;一旦迭代器循环到最后一个对象,hasNext()方法将返回“false”,因此即使最后一个对象存在,也不会渲染它

如果这不是问题,我不确定问题出在哪里,因为我知道我的应用程序只渲染了迭代器中除一个之外的所有对象

有人能帮我找到解决这个问题的办法吗


提前感谢

您已经知道-最后一个对象没有“下一个”,因此它不会进入循环

你可以改变它,或者我建议使用for-each循环

for(Enemy enemy: enemies){
//do your update inside
}  
有关每个的详细信息:

我认为for-each循环是非常可靠的,并且没有使用那么多。在您的情况下,这可能是一个更好的选择