在此代码中Integer.Min_value的用途是什么?

时间:2018-05-30 18:40:39

标签: java data-structures stack

此代码中Integer.Min_value的用途是什么?我知道它是垃圾收集的解引用S [top],但需要了解更多信息

public int pop() throws Exception {

    int data;
    if (isEmpty())
        throw new Exception("Stack is empty.");
    data = S[top];
    S[top--] = Integer.MIN_VALUE; 
    return data;
} 

1 个答案:

答案 0 :(得分:0)

想象一下,您将堆栈定义为数组,如下所示:

S = [ 1, 2, 3, 4, 5 ]

筹码是最后一次出局。 top变量应始终是“last in”堆栈项的索引,在本例中为top = 4,因为最后一个数字为5且索引为4

这样做是将S[top]的内容分配给data,然后将Integer.MIN_VALUE分配给S[top]以“清除”它,然后将顶部减少1。 / p>

这一行: S[top--] = Integer.MIN_VALUE;可以改写如下:

S[top] = Integer.MIN_VALUE; top = top - 1;

我认为最终目标是清除堆栈中的旧值并为其提供默认值,而无需调整数组大小。

执行pop方法后,结果如下: S: [ 1, 2, 3, 4, -2147483648 ]top: 3以及堆栈中的“last in”项目将为4

希望这是有道理的。