这是使用方法“添加”的正确方法吗?

时间:2019-03-11 21:48:08

标签: java

所以我的朋友创建了一个队列类,该类具有实例变量size = 0;以及他使用的add方法。

但是在这种情况下索引0会发生什么?

由于add是从size ++开始的,因此不会声明任何元素。这是1个开始位置。

public void add(T data) {
    if(size > elements.length) {
        throw new QueueException("Queue is full");
    }
    elements[size++] = data;
}

1 个答案:

答案 0 :(得分:5)

size++返回size值,然后在后台递增。因此,将分配elements[0]。有关递增,请参见Oracle Tutorial

问题出在最后一个元素上。该代码将尝试分配大于阵列容量的elements[elements.length]。警卫应为:

if (size >= elements.length) {
  throw new QueueException("Queue is full");
}