迭代时是否可以删除当前对象以外的对象?
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可以以某种方式做到吗?或者它根本不可行?
答案 0 :(得分:0)
不知道other_object_in_gameObjects
是什么,但您可以创建一个临时List
来记录需要删除的列表项,并在迭代后删除temp {{1}中的所有项目同样在List
。
答案 1 :(得分:0)
您可以考虑使用Guava library。有Iterables.removeIf
方法允许您从列表中删除符合条件的所有对象。
this other SO question有一个使用示例。