0

私は次のコードを持っています。

    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人の顧客を持つサイズ100のリスト(この場合は両端キュー)を提供する必要があります。

サイズを印刷すると理論が検証されますが、コンテンツを印刷するとインデックス0〜49しか返されません。

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

arraydequeの印刷は、他の配列リストの印刷とは異なりますか?

4

1 に答える 1

3

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

イテレータを使用して、キューを変更せずに要素を出力できます。

int i = 0;
for (int elem : q) {
    System.out.println("index "+ i++ + " "+ elem);
}
于 2011-07-09T18:50:23.773 に答える