2011-07-09 7 views
0

次のコードがあります。ArrayDequeのサイズと内容

int clock; 
    ArrayDeque<Integer> q = new ArrayDeque<Integer>(); 
    int customer = 1; 
    Random r = new Random(); 

    for (clock = 0; clock <= 99; clock++) { 
     q.add(customer); 
     customer++; 
    } 

私がこれまでに知っていることに基づいて、私は100人の顧客を持つリスト、またはこの場合は両端キューを与える必要があります。

私はサイズを印刷すると理論を検証しますが、内容を印刷するとインデックス0-49しか返されません。

for (int i = 0; i < q.size() ; i++) { 
     System.out.println("index "+ i + " "+ q.remove()); 
    } 

他のarraylistsの印刷とは異なる印刷アレンジメントですか?

答えて

3

問題はq.size()と比較して、各反復で減少することです。これは、remove()が実際にキューを変更したためです。

あなたはイテレータを使用してキューを変更せずに要素を印刷することができます。もちろん

int i = 0; 
for (int elem : q) { 
    System.out.println("index "+ i++ + " "+ elem); 
} 
+0

を!これではまだ新しい。ありがとうございました – fernan

関連する問題