【问题标题】:Removing object from ArrayList in Java从 Java 中的 ArrayList 中删除对象
【发布时间】:2013-01-26 14:59:51
【问题描述】:

我有这个,每次子弹到达的位置大于我的屏幕宽度时,它都必须被销毁。当我尝试这个时,游戏崩溃了。

“bullet”是我的类,其中包含 i 作为对象。

“bullets”是我的数组列表,包含所有对象。

编辑:现在尝试使用迭代器,但仍然崩溃。

编辑:接受的答案帮助了我。现在工作。谢谢!

public ArrayList<bullet> bullets = new ArrayList<bullet>();
public Iterator<bullet> it = bullets.iterator();

while (it.hasNext()) {
           bullet s = it.next();
           if(s.xPosition > screenWidth - 10) {
               it.remove();
           }
        }

【问题讨论】:

标签: java for-loop arraylist foreach


【解决方案1】:

您不能在迭代列表时从列表中删除元素。如果你这样做,你会得到ConcurrentModificationException。 您应该使用迭代器并从迭代器中删除元素。

Iterator<Bullet> itr = bullets.iterator();
while(itr.hasNext()) {
    if(itr.next().xPosition > screenWidth - 10) {
        itr.remove(i);
    }
}

【讨论】:

  • 嗯,这很酷,一切都很好,但这并没有真正帮助我,因为我不知道如何制作其中之一。
  • @KevinJensenPetersen 检查在您的问题下作为评论发布的重复项。
猜你喜欢
  • 1970-01-01
  • 2015-08-05
  • 1970-01-01
  • 2010-11-21
  • 2020-08-23
  • 1970-01-01
  • 2021-03-11
  • 2015-08-02
相关资源
最近更新 更多