Java 双端队列Deque 方法总结
双端队列或 Deque 扩展队列以允许元件从两端插入和移除。Deque 类的实例表示双端队列,Deque 接口扩展了 Queue 接口,它声明了方便所有操作的其他方法对于头部以及尾部的队列。它可以用作FIFO队列或LIFO队列。ArrayDeque 和 LinkedList类是Deque接口的两个实现类。ArrayDeque 类由数组支持,而 LinkedList 类由链表支持。如果您使用Deque作为堆栈,则应该使用 ArrayDeque 作为 Deque 实现。如果使用 Deque 作为FIFO队列, 可以使用LinkedList。
public static void main(String[] args) {
Deque<Integer> num = new LinkedList<>();
num.push(1);
num.addLast(2);
num.addFirst(3);//在头部加数据
num.push(4);//在头部加数据
num.add(0);//在尾部加数据
System.out.println(num.getFirst());//返回头部数据,不删除
System.out.println(num.getLast());//返回尾部收据,不删除
num.pop();//弹出头部数据
num.offer(5);//尾部添加数据
num.offerFirst(6);//头部添加数据
num.offerLast(7);//尾部添加数据
System.out.println(num.peek());//返回头部数据,不删除
System.out.println(num.peekFirst());//返回头部数据,不删除
System.out.println(num.peekLast());//返回尾部数据,不删除
System.out.println(num.remove());//删除头部数据,返回
System.out.println(num.removeFirst());//删除头部数据,返回
System.out.println(num.removeLast());//删除胃部数据,返回
System.out.println(num.getLast());//返回尾部数据,不删除
System.out.println(num.getFirst());//返回头部数据,不删除
System.out.println(num.poll());//删除头部数据,返回
System.out.println(num.pollFirst());//删除头部数据,返回
System.out.println(num.pollLast());//删除尾部数据,返回
}
```