一、Deque 接口的介绍
Deque接口是位于java.util包 队列接口的一个子类型。Deque与双端队列有关,双端队列支持从数据结构的任意一端添加或删除元素。它既可以用作队列(先进先出/FIFO),也可以用作堆栈(后进先出/LIFO)。Deque是双端队列的缩写。
1.1 Deque 接口声明
deque接口声明为:
public interface Deque<E> extends Queue<E>
由于Deque是一个接口,所以不能以Deque类型创建对象。我们总是需要一个扩展这个列表的类来创建对象。而且,在Java 1.5中引入泛型之后,可以限制可以存储在Deque中的对象的类型。
实例:使用Deque的实现类LinkedList创建对象
Deque<String> deque = new LinkedList<String>();
// 添加尾部元素
deque.add(" 1 (尾部)");
// 添加头部元素
deque.addFirst(" 2 (头部)");
// 添加在尾部元素
deque.addLast(" 3 (尾部)");
// 添加头部元素
deque.push(" 4 (头部)");
// 添加在尾部元素
deque.offer(" 5 (尾部)");
// 添加头部元素
deque.offerFirst(" 6 (头部)");
System.out.println(deque + "\n");
// 删除头部元素,尾部元素
deque.removeFirst();
deque.removeLast();
System.out.println("Deque 删除后" + "头部和尾部" + deque);
输出
[ 6 (头部), 4 (头部), 2 (头部), 1 (尾部), 3 (尾部), 5 (尾部)]
Deque 删除后头部和尾部[ 4 (头部), 2 (头部), 1 (尾部), 3 (尾部)]
二、Deque 接口的API
Method | Description |
---|---|
boolean add(object) | 它用于将指定的元素插入到deque容器中,成功时返回true。 |
boolean offer(object) | 它用于在deque容器中插入指定的元素。 |
Object remove() | 它用于检索和移除deque容器的头部。 |
Object poll() | 它用于检索和移除该deque容器的头部,如果该deque容器为空,则返回null。 |
Object element() | 它用于检索,但不移除该deque的头部。 |
Object peek() | 它用于检索,但不删除该deque容器的头部,如果该deque容器为空,则返回null。 |
Object peekFirst() | 该方法返回deque容器的头元素。该方法不会从deque容器中移除任何元素。当deque为空时,该方法返回Null。 |
Object peekLast() | 该方法返回deque容器的最后一个元素。该方法不会从deque容器中移除任何元素。当deque为空时,该方法返回Null。 |
Boolean offerFirst(e) | 将元素e插入到队列的前面。如果插入成功,返回true;否则,false |
Object offerLast(e) | 将元素e插入到队列的尾部。如果插入成功,返回true;否则,false |