我在下面这段代码中遇到了麻烦.Values和minStack都是初始化的堆栈,两个堆栈的顶值是相同的.然而,第一个代码片段没有进入if条件,而后者进入了.我无法对此进行调试.
public void pop() {
System.out.println(values.peek()); // prints -1024
System.out.println(minStack.peek()); // prints -1024
if(values.pop() == minStack.peek()) {
// Condition not fulfilled
minStack.pop();
}
}
然而,下面的工作与预期的一样.
public void pop() {
int valTop = values.pop();
int minTop = minStack.peek();
if(valTop == minTop) {
minStack.pop();
}
}
我搞不懂背后的道理,请帮帮忙.