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, вот поп(), переменная стека является Stack (целое число), и мин является ArrayList (Integer), но второй, если stmt не всегда работает правильно.Java, два целых числа, они равны, но
я получил консоль, как это:
a:512 b:-1000
a:-1000 b:-1000
111
a:-1000 b:-1000
111
Я думаю, что «111» и «222» всегда будет показывать вместе, но здесь нет. Если я изменю второй, если stmt как stack.peek()-min.get(min.size()-1)==0
, то он работает правильно, почему это произошло?
Заранее благодарен. .
EDIT:
Я знаю, где это не так, я должен использовать stack.peek() intValue() == min.get (min.size() - 1) .intValue(), потому что они являются Integer.
«Вы пытались отладить свой код? – Jens
оба они Integer – Georgey
вы можете добавить содержимое min и stack также – shikjohari