有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用迭代器的Java fire bullet

我不知道我是否做对了,但我有这样的想法:

ArrayList al = new ArrayList();
Iterator itr;

如果我按空格键fire就会变成真的

if (fire) {
   Bullet bullet = new Bullet(ship.getX(), ship.getY(), true);
   al.add(bullet);
   itr = al.iterator();
   fire = false;
}
while(itr.hasNext()) {
//here i want my Bullet class funcion move();
// something liek itr.move();

}

可能都错了。但是你能给我一些建议吗


共 (1) 个答案

  1. # 1 楼答案

    要从迭代器中获取值,应该使用next()方法。该方法返回迭代器指向的值,并将迭代器移动到容器中的下一个元素

    while(itr.hasNext()) {
        Bullet bullet = (Bullet) itr.next();
        bullet.move();
    }
    

    由于Java 1.5,您可以以更优雅的方式对集合进行迭代(这与上面的方法相同,但您不必担心迭代器):

    for(Bullet bullet : al) { // Assuming you use generic ArrayList<Bullet>
        bullet.move();
    }