2012-03-12 3 views
0

for 루프를 사용하지 않고도 ArrayList에서 함수를 호출 할 수 있습니까? 아니면이를 수행하는 anthoer 방법이 있습니까? 예제가 더 이해되기를 바랍니다. 나는 컴퓨터 속도에 대해 걱정할 필요없이 추가하고 불 덩어리를 제거 할 수 무엇을 할 수 있기 때문에android ArrayList for for 루프를 사용하지 않고

public class Fireball { 

     public void draw(GL10 gl){ 
     draw(gl); 
     } 

public class Gameview { 

    private ArrayList<FireBall> fireBall = new ArrayList<FireBall>(); 

    public draw(GL10 gl){ 
    //this is where I what to draw everthing in the ArrayList 
     fireBall.getIndex(ALL).draw(gl) 
    } 
} 

내가 요구하고있는 이유는 ArrayList을 통해 당신에게

답변

1

순회 감사하지 않는입니다 CPU를 소모 (비록 벡터를 사용하면 훨씬 더 최적화 할 수 있습니다), 한번에 여러 개의 불 덩어리를 그릴 수있는 방법이 있더라도 그 방법은 여전히 ​​ArrayList을 반복합니다.

+1

왜 Vector가 ArrayList보다 빠를까요? 무엇보다 벡터가 동기화 오버 헤드를 가지고 있기 때문에 다른 방법이 아닌가? – Thilo

+1

아, 죄송합니다, 벡터에 의해 나는 불 덩어리 []를 의미합니다. 편집 : 나는 이제야 내 교수가 "벡터"라고 부른 다른 모든 사람들이 "배열"이라고 부르는 것을 깨달았습니다 ... – zrgiu

0

arraylist를 사용 중이므로 while 루프를 사용할 수 있습니다.

1 : A, B, C, D, E]
2 : B, C
단지 체크리스트의 내용

ArrayList al = new ArrayList(); 
al.add("a"); 
al.add("b"); 
al.add("c"); 
al.add("d"); 
al.add("e"); 

int counter = 1; 
while (!al.isEmpty()) { 
    System.out.println(counter++ + ": " + al.toString()); 
    al.remove(0); 
} 

출력 널이 , D, E]
3 : [C, D, E]
4 [D, E]
5 : [E]

장점은 사용하지 않는 요소를 삭제 한 이후로 메모리를 덜 사용하지만 arraylist를 다시 사용하려는 경우 요소를 반복하면됩니다.

fireball.getIndex(ALL); 
while (Fireball f : fireball) { 
    f.draw(gl) 
} 
관련 문제