Stack中push和pop只要出现即会执行(也就是判断时使用类似stack.pop()==x?),如下代码:
Stack<Character> stack = new Stack<Character>();
Character c='{';
if(stack.isEmpty() || stack.pop()!=c){
return false;
}
这里虽然pop函数出现在判断中,但是对于栈来说,栈顶元素会弹出后再判断是否等于’{’,所以判断结束后,对于栈来说,同时也执行了一次pop。
那么如果我们想判断栈顶元素,而不使其弹出,应该怎么做呢?
这里可以使用Stack自带的peek()方法。中文翻译为窥视(还是很好记的!)