队列与栈(Queue,Deque,Stack)
队列与栈(Queue,Deque,Stack)
队列(Queue)是一种特殊的线性表,是一种先进先出的数据结构,它只允许在表的前端进行删除操作,在表的后端进行插入操作,进行插入操作的端称为队尾,进行删除操作的端称为队头,队列中没有元素时,称为空队列,是一种先进先出的线性数据结构, LinkedList类实现了queue接口
private static void queue() {
Queue<String> queue = new LinkedList<>();
queue.add("小花");
queue.add("小小");
queue.add("小丽");
// 队列的长度
System.out.println(queue.size());
// 获取但不移除队列的头,队列为空,返回null
System.out.println(queue.peek());
System.out.println(queue.size());
// 获取并移除此队列的头,队列为空,返回null
System.out.println(queue.poll());
System.out.println(queue.size());
}
Deque:一个线性的collecton,支持在两端插入和移除元素。此接口既支持有容量限制的双端队列,也支持没有固定大小的双端队列,接口定义在双端队列两端访问元素的方法,提供插入、移除、删除和检查元素的方法,是一个双端队列
private static void deque() {
Deque<String> deque = new LinkedList<>();
deque.add("小花");
deque.add("小小");
deque.add("小丽");
// 可以从两边来取
System.out.println(deque.getFirst());
System.out.println(deque.getLast());
}
Stack类代表先进后出的堆栈
private static void stack() {
Stack<String> s = new Stack<>();
s.push("bin");
s.push("tom");
s.push("lili");
// 不移除
System.out.println(s.peek());
//移除
System.out.println(s.pop());
System.out.println(s.pop());
}