迭代时从Java中的List中删除指定的对象

时间:2013-12-21 00:55:53

标签: java arraylist

迭代时是否可以删除当前对象以外的对象?

List<GameObjects> gameObjects = new ArrayList<GameObjects>();

ListIterator<GameObject> iterator = gameObjects.listIterator();
while (iterator.hasNext()) {
    iterator.next().update();
    // Here I would like to do gameObjects.remove(other_object_in_gameObjects);
}

显然这是不允许的。但是Iterator可以以某种方式做到吗?或者它根本不可行?

2 个答案:

答案 0 :(得分:0)

不知道other_object_in_gameObjects是什么,但您可以创建一个临时List来记录需要删除的列表项,并在迭代后删除temp {{1}中的所有项目同样在List

答案 1 :(得分:0)

您可以考虑使用Guava library。有Iterables.removeIf方法允许您从列表中删除符合条件的所有对象。

this other SO question有一个使用示例。