Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误与异常

Java 多线程

Java 同步

Java 网络

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 杂项

Java API 与框架

Java 类参考

Java 有用资源

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
广告