栈:先入后出
典型应用:函数栈帧,浏览器的返回键,安卓Activity的后退功能,编辑器的撤销功能
Stack类,动态的
队列:先入先出
典型应用:排队,消息队列
栈:
Public class Stack<E> extends Vector<E> 动态数组 @since JDK1.0
入栈:push()
出栈:pop()
返回栈顶元素但不出栈:peek()
java.util.EmptyStackException:如果栈为空时,继续往出pop的异常。运行时异常
队列:
Queue接口:public interface Queue<E> extends Collection<E> @since1.5
入队列:add()
出队列:poll()
返回队列头元素,不出队:peek()
子类:linkedList
Deque:双端队列(头尾都能入,都能出)模拟栈:从头进,从尾出
Queue<String>queue=newLinkedList<>();
queue.add("123");
queue.add("456");
queue.add("780");
System.out.println(queue.poll());
System.out.println(queue.peek());
System.out.println(queue.poll());
System.out.println(queue.poll());
System.out.println(queue.poll());
System.out.println(queue.poll());
结果:
队列为空时,返回null