【发布时间】:2014-01-07 04:57:47
【问题描述】:
假设我有一些使用数组来存储值的堆栈实现。弹出时,是否可以简单地更改我的“指针”值所指的位置,还是应该将当前数组位置设置为 null?
public T pop() {
size--;
return stack[size];
}
对比
public T pop() {
size--;
T result = stack[size];
stack[size] = null;
return result;
}
【问题讨论】:
-
你应该设置为
null。 -
为什么?功能正常的数组堆栈不会阻止用户访问弹出的值而不将它们设置为 null 吗?
-
您的下一个
pop()或top()将返回下面的元素,但您保留了对之前存在的对象的引用,因此它不能被垃圾回收。