我有一段代码用于Stack的pop方法,我正在尝试弄清楚它如何避免loitering(闲置)同时仍然返回我们索引当前指向的元素:
public String pop()
{ // Remove item from top of stack.
String item = a[--N];
a[N] = null; // Avoid loitering (see text).
if (N > 0 && N == a.length/4) resize(a.length/2);
return item;
}
从我的理解来看,我们正在将String对象的引用项指向数组a的索引元素(我们从最后一个元素开始使用其当前大小N-1,因此递减)。然后,如果我们返回引用,为什么在这样做之前要将引用所指向的索引元素设置为null?这不会使该项指向空并返回空吗?