내가 그것을 확장 게임 오브젝트와 세 개의 클래스로 알려진 추상 클래스를 게임을 코딩해야하고 (플레이어, 벽, 그리고 적).자바 ArrayList의 효율성
내 게임의 모든 개체가 포함되어있는 것으로 정의 된 목록이 있습니다. 당신이 볼 수있는
public void update() {
for(GameObject o : objects) {
if(o instanceof Wall) {
// do something
}
else if(o instanceof Player) {
// do something
}
else if(o instanceof Enemy) {
// do something
}
}
}
그래서, 전체 목록 확인을 통과해야 :
List<GameObject> objects;
내가 개체에 뭔가를 할 필요가
, 이것은 내가 어떻게 할 것입니다 단일 객체를 찾기 위해 찾을 수있는 유형. 이것은 나에게 매우 효율적이지 않은 것 같다. 그래서 나는 다른 파생 된 클래스를 자신의 목록에 저장하는 것에 대해 생각했습니다.private List<Wall> walls;
private List<Enemy> enemies;
private Player player; // only one
이 아니라 전체 목록을가는 모든 것을 포함하고 거세한 숫양을 결정하는 입력 나 뭔가를하지 검사를보다 더 효율적으로 될 것인가? 정말 고마워.
하나 이상의 목록이 중요하지 않습니다. 당신이해야 할 일은 각 객체에 식별자를 할당하고 쉬운 검색을 위해'Map' 구현에 저장하는 것입니다. – asgs
'doSomething()'메소드를'GameObject' (아마도'abstract')에 넣는 것이 좋습니다. 그러면'o.doSomething()'을 호출하고 인스턴스가 그 것을 결정하게 할 수 있습니다. 아니면'update()'일까요? –