我有下面的代码。
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与打印其他arraylist有什么不同?
发布于 2011-07-10 02:50:24
问题是与q.size()进行比较,它在每次迭代时都会减少。这是因为remove()实际上修改了队列。
可以使用迭代器在不修改队列的情况下打印元素:
int i = 0;
for (int elem : q) {
System.out.println("index "+ i++ + " "+ elem);
}https://stackoverflow.com/questions/6636773
复制相似问题