請勿在for
循環中使用carQueue.size()
,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
循環
Seconde系列迭代:
For :
1e Iteration : carQueue.size() = 2, m = 0
2e Iteration : carQueue.size() = 1, m = 1 <---- Exit the loop
最後,你的隊列是空的,因爲在while
循環,第一和數組的第二個對象被隊列的最後兩個元素替換。
從Javadoc:
民意調查:獲取並移除此隊列的頭部,或返回null 如果這個隊列是空的。
保存在int
變量的初始大小:
public void intoArray()
{
while(!carQueue.isEmpty())
{
int size = carQueue.size();
for(int m = 0; m <= size ; m++)
{side[m] = carQueue.poll();}
}
}
檢查循環條件。所涉及的元素是否會在每次迭代中發生變化?感謝老闆 –