簡體   English   中英

迭代時從Java中的列表中刪除指定的對象

[英]Remove specified object from List in Java when iterating

迭代時是否可以刪除當前對象以外的對象?

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可以以某種方式做到嗎? 還是根本不可行?

不知道other_object_in_gameObjects是什么,但是您可以創建一個臨時List記錄需要刪除的列表項,並在迭代之后刪除臨時List中也包含在gameObjects中的所有項。

您可能會考慮使用Guava庫 有一個Iterables.removeIf方法,該方法允許您從列表中刪除符合您條件的所有對象。

另一個SO問題中有一個用法示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM