【发布时间】:2015-03-31 05:55:47
【问题描述】:
public void pop() {
int a = stack.peek();
int b = min.get(min.size()-1);
System.out.println("a:"+a+" "+"b:"+b);
if (a==b) {
System.out.println("111");
}
if (stack.peek()==min.get(min.size()-1)) {
System.out.println("222");
}
stack.pop();
}
我创建了一个名为 MinStack 的类,这里是 pop(),变量 stack 是 Stack(Integer),min 是 ArrayList(Integer),但是第二个如果 stmt 并不总是正常工作。
我有这样的控制台:
a:512 b:-1000
a:-1000 b:-1000
111
a:-1000 b:-1000
111
我认为“111”和“222”总是会一起显示,但这里不是。
如果我将第二个 if stmt 更改为stack.peek()-min.get(min.size()-1)==0,那么它可以正常工作,为什么会这样?
提前致谢。
编辑:
我知道哪里错了,我必须使用stack.peek().intValue()==min.get(min.size()-1).intValue(),因为它们是Integer。
【问题讨论】:
-
´你试过调试你的代码吗?
-
都是整数
-
能不能把min和stack的内容也加进去
标签: java