ArrayDeque大小和内容

时间:2011-07-09 18:48:39

标签: java 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个拥有100个客户的deque,大小为100。

当我打印尺寸时,它验证了我的理论,但是当我打印内容时,它只返回索引0-49。

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

打印arraydeque与打印其他arraylists不同吗?

1 个答案:

答案 0 :(得分:3)

问题是您与q.size()进行比较,q.size()会在每次迭代时减少。这是因为remove()实际上修改了队列。

您可以使用迭代器打印元素而无需修改队列:

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