因此,我的朋友创建了一个队列类,其中包含一个实例变量和他使用的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
提交
取消