栈 | 队列 | |
特点 | 后进先出 | 先进先出 |
定义 | Stack<Object> stack = new Stack<Object>() | Queue<Object> queue = new LinkedList<Object>() |
入 | s.push() | q.offer() |
出 | s.pop() 同时返回栈顶元素 | q.poll() 同时返回队头元素 |
顶 | s.peek() | q.peek() 队列头部元素 |
注意:在队列中:add()和remove()方法在失败(例如出界)的时候会抛出异常,需要人工手动处理,而offer,pool方法直接返回false,不需要人工手动处理,因此推荐采取offer,pool方法
典型应用:用两个栈实现队列,stack1用来做push操作,stack2用来做pop操作