不要carQueue.size()
在for
循环中使用,该poll
方法从队列中删除对象。
循环的第一次迭代while
:
For :
1e Iteration : carQueue.size() = 5, m = 0
2e Iteration : carQueue.size() = 4, m = 1
3e Iteration : carQueue.size() = 3, m = 2
4e Iteration : carQueue.size() = 2, m = 3 <---- Exit the loop
循环的第二次迭代while
:
For :
1e Iteration : carQueue.size() = 2, m = 0
2e Iteration : carQueue.size() = 1, m = 1 <---- Exit the loop
最后,您的队列为空,因为while
循环的第一个和第二个对象被队列的最后两个元素替换。
从Javadoc:
Poll :检索并移除此队列的头部,如果此队列为空,则返回 null。
将初始大小保存在int
变量中:
public void intoArray()
{
while(!carQueue.isEmpty())
{
int size = carQueue.size();
for(int m = 0; m <= size ; m++)
{side[m] = carQueue.poll();}
}
}