双端队列

Deque双端队列,这意味着可以在队列的前端或尾部添加元素。队列只能将元素添加到队列的尾部。

Deque 继承了 Queue 接口,这意味着常规方法仍然存在,但 Deque 接口提供了更多灵活的队列方法。如果你知道队列是如何工作的,那么额外的方法真的可以说是自我,因为这些方法旨在增加更多的灵活性:

方法 简要描述;简介
getFirst() 获取队列头部的第一项而不删除它。
getLast() 获取队列尾部的第一项而不删除它。
addFirst(E e) 将项添加到队列的头部
addLast(E e) 将项添加到队列的尾部
removeFirst() 删除队列头部的第一个项目
removeLast() 删除队列尾部的第一个项目

当然,offerpollpeek 的选项相同,但它们不能用于例外,而是使用特殊值。展示他们在这里做了什么是没有意义的。

添加和访问元素

要将元素添加到 Deque 的尾部,可以调用它的 add() 方法。你还可以使用 addFirst()addLast() 方法,这些方法将元素添加到双端队列的头部和尾部。

Deque<String> dequeA = new LinkedList<>();

dequeA.add("element 1");      //add element at tail
dequeA.addFirst("element 2"); //add element at head
dequeA.addLast("element 3");  //add element at tail

你可以查看队列头部的元素,而无需将元素从队列中取出。这是通过 element() 方法完成的。你还可以使用 getFirst()getLast() 方法,它们返回 Deque 中的第一个和最后一个元素。这是看起来如何:

String firstElement0 = dequeA.element();
String firstElement1 = dequeA.getFirst();
String lastElement = dequeA.getLast();

删除元素

要从双端队列中删除元素,请调用 remove()removeFirst()removeLast() 方法。这里有一些例子:

String firstElement = dequeA.remove();
String firstElement = dequeA.removeFirst();
String lastElement  = dequeA.removeLast();