双端队列 【Deque】
参考链接
JAVA 栈,为什么要使用Deque,而不推荐使用Stack,Deque中ArrayDeque与LinkedList的区别,Deque方法详解_java 栈为什么用deque-CSDN博客
简介
可以理解成,双端队列就是可以在队头 和 队尾进行操作,比如:查看队头队尾元素,弹出队头队尾元素,或者从队头和队尾插入元素,那也就意味着他可以用来当做 队列 和 栈 的数据结构使用
用法
队列
先进先出的线性数据结构
入队
方法 | 作用 |
| 将指定的元素插入此双端队列的后面 ,空间不足抛异常 |
| 将指定的元素插入此双端队列的后面,空间不足返回false |
| 将指定的元素插入此双端队列的后面,空间不足抛异常 |
| 将指定的元素插入此双端队列的后面,空间不足返回false |
出队
方法 | 作用 |
| 检索并删除第一个元素,为空时抛出异常 |
| 检索并删除第一个元素 ,为空时返回null |
查看队头元素
方法 | 作用 |
| 只看第一个元素 ,不出来,为空就抛异常 |
| 只看第一个元素 ,不出来,为空时返回null |
代码案例
public class QueueTest {
public static void main(String[] args) {
Deque<Integer> queue = new LinkedList<>();
// 分别入队 1,2,3
queue.offer(1);
queue.offer(2);
queue.offer(3);
// 查看元素
System.out.println(queue.peek());
// 出队
System.out.println(queue.poll());
// 遍历
for (Integer i : queue) {
System.out.println(i);
}
}
}
1
1
2
3
栈
先进后出的线性数据结构
入栈
方法 | 作用 |
| 将指定的元素插入此双端队列的前面 ,空间不足抛异常 |
| 将指定的元素插入此双端队列的前面 ,空间不足插入失败返回回false |
| 将指定的元素插入此双端队列的前面 ,空间不足抛异常 |
出栈
方法 | 作用 |
| 检索并删除第一个元素,为空时抛出异常 |
| 检索并删除第一个元素 ,为空时返回null |
查看栈顶元素
方法 | 作用 |
| 只看第一个元素 ,不出来,为空就抛异常 |
| 只看第一个元素 ,不出来,为空时返回null |
代码案例
public class StackTest {
public static void main(String[] args) {
Deque<Integer> stack = new LinkedList<>();
// 分别入栈 1,2,3
stack.push(1);
stack.push(2);
stack.push(3);
// 查看栈顶元素
System.out.println(stack.peek());
// 出栈
System.out.println(stack.poll());
// 遍历
for (Integer i : stack) {
System.out.println(i);
}
}
}
3
3
2
1