我有一個數組列表作爲這樣:如何僅迭代特定類型的元素?
private List<GameObject> gameObjects = new CopyOnWriteArrayList<GameObject>();
GameObject
可以是3類中的一個:Spaceship
,Beam
和Asteroid
。它們都是相似的,所以我把它們放在一個陣列中。然而宇宙飛船有其他線程中每100ms使用的加法拍攝(叫做ShootRunnable
)。所以我只想在Spaceship
中迭代它,因爲其他的不實施拍攝方法。達到此目的的最佳方法是什麼?
for (GameObject ob : gameObjects) {
if (ob instanceof Spaceship) {
ob.shoot();
}
}
我可以使用類似上面的方法遍歷它嗎?只需使用演員或其他東西?請幫忙。
這就是我想到的。但是,與宇宙飛船有關的每一個行動我都要做兩次。因此,當我添加新的太空船時,我將不得不將它添加到gameObjects列表和宇宙飛船?當刪除時,從gameObjects和宇宙飛船中刪除它。 :/但你認爲它是最好的方式? –
正確。別擔心,電腦速度很快。 :) – Will
好吧,這就是我將如何做。非常感謝 –