因此,我的朋友創建了一個隊列類,其中包含一個實例變量和他使用的add方法。size = 0;但是,在這種情況下,索引 0 會發生什么情況呢?它不會向它聲明元素,因為 add 從 size++ 開始。這是1個起始位置。public void add(T data) { if(size > elements.length) { throw new QueueException("Queue is full"); } elements[size++] = data;}
1 回答
溫溫醬
TA貢獻1752條經驗 獲得超4個贊
size++返回值在后臺遞增之前的值。因此,將分配。請參閱有關遞增的 Oracle 教程。sizeelements[0]
問題在于最后一個元素。代碼將嘗試分配高于陣列容量的容量。警衛應該是:elements[elements.length]
if (size >= elements.length) {
throw new QueueException("Queue is full");
}
添加回答
舉報
0/150
提交
取消
