Java - Deque 接口



Deque 接口在 java.util 包中提供,它扩展了 Queue 接口。它是一个线性集合,支持在两端插入和删除元素。此接口定义了访问双端队列两端元素的方法。提供了插入、删除和检查元素的方法。

声明

public interface Deque<E>
   extends Queue<E>

Deque 方法

以下是 Deque 接口的所有实现类实现的重要双端队列方法列表 -

序号 方法及描述
1 boolean add(E e)

此方法将指定的元素插入到此双端队列表示的队列中(换句话说,在此双端队列的尾部),如果可以立即在不违反容量限制的情况下这样做,则返回 true,如果当前没有可用空间,则抛出 IllegalStateException。

2 boolean addAll(Collection<? extends E> c)

此方法将指定集合中的所有元素添加到此双端队列的末尾,就像对每个元素调用 addLast(E) 一样,按照集合的迭代器返回它们的顺序。

3 void addFirst(E e)

此方法将指定的元素插入到此双端队列的前面,如果可以立即在不违反容量限制的情况下这样做,如果当前没有可用空间,则抛出 IllegalStateException。

4 void addLast(E e)

此方法将指定的元素插入到此双端队列的末尾,如果可以立即在不违反容量限制的情况下这样做,如果当前没有可用空间,则抛出 IllegalStateException。

5 boolean contains(Object o)

此方法如果此双端队列包含指定的元素,则返回 true。

6 Iterator<E> descendingIterator()

此方法返回一个迭代器,该迭代器以相反的顺序遍历此双端队列中的元素。

7 E element()

此方法检索但不删除此双端队列表示的队列的头(换句话说,此双端队列的第一个元素)。

8 E getFirst()

此方法检索但不删除此双端队列的第一个元素。

9 E getLast()

此方法检索但不删除此双端队列的最后一个元素。

10 Iterator<E> iterator()

此方法返回一个迭代器,该迭代器按正确的顺序遍历此双端队列中的元素。

11 boolean offer(E e)

此方法将指定的元素插入到此双端队列表示的队列中(换句话说,在此双端队列的尾部),如果可以立即在不违反容量限制的情况下这样做,则返回 true,如果当前没有可用空间,则返回 false。

12 boolean offerFirst(E e)

此方法将指定的元素插入到此双端队列的前面,除非这会违反容量限制。

13 boolean offerLast(E e)

此方法将指定的元素插入到此双端队列的末尾,除非这会违反容量限制。

14 E peek()

此方法检索但不删除此双端队列表示的队列的头(换句话说,此双端队列的第一个元素),或者如果此双端队列为空,则返回 null。

15 E peekFirst()

此方法检索但不删除此双端队列的第一个元素,或者如果此双端队列为空,则返回 null。

16 E peekLast()

此方法检索但不删除此双端队列的最后一个元素,或者如果此双端队列为空,则返回 null。

17 E poll()

此方法检索并删除此双端队列表示的队列的头(换句话说,此双端队列的第一个元素),或者如果此双端队列为空,则返回 null。

18 E pollFirst()

此方法检索并删除此双端队列的第一个元素,或者如果此双端队列为空,则返回 null。

19 E pollLast()

此方法检索并删除此双端队列的最后一个元素,或者如果此双端队列为空,则返回 null。

20 E pop()

此方法从此双端队列表示的栈中弹出元素。

21 void push(E e)

此方法将元素推送到此双端队列表示的栈上(换句话说,在此双端队列的头部),如果可以立即在不违反容量限制的情况下这样做,如果当前没有可用空间,则抛出 IllegalStateException。

22 E remove()

此方法检索并删除此双端队列表示的队列的头(换句话说,此双端队列的第一个元素)。

23 E removeFirst()

此方法检索并删除此双端队列的第一个元素。

24 boolean removeFirstOccurrence(Object o)

此方法从此双端队列中删除指定元素的第一次出现。

25 E removeLast()

此方法检索并删除此双端队列的最后一个元素。

26 boolean removeLastOccurrence(Object o)

此方法从此双端队列中删除指定元素的最后一次出现。

27 int size()

此方法返回此双端队列中的元素数。

继承的方法

此接口继承自以下接口 -

  • java.util.Queue
  • java.util.Collection
  • java.lang.Iterable

示例

在此示例中,我们使用 Deque 实例来显示双端队列的添加、窥视和大小操作。

package com.tutorialspoint;

import java.util.ArrayDeque;
import java.util.Deque;

public class DequeDemo {
   public static void main(String[] args) {
      Deque<Integer> q = new ArrayDeque<>();
      q.add(6);
      q.add(1);
      q.add(8);
      q.add(4);
      q.add(7);
      System.out.println("The deque is: " + q);
      int num1 = q.remove();
      System.out.println("The element deleted from the head is: " + num1);
      System.out.println("The deque after deletion is: " + q);
      int head = q.peek();
      System.out.println("The head of the deque is: " + head);
      int size = q.size();
      System.out.println("The size of the deque is: " + size);
   }
}

输出

The deque is: [6, 1, 8, 4, 7]
The element deleted from the head is: 6
The deque after deletion is: [1, 8, 4, 7]
The head of the deque is: 1
The size of the deque is: 4
广告