Java 中的 Deque 接口

java programming java8object oriented programming

java.util.Deque 接口是 java.util.Queue 接口的子类型,支持在两端插入和删除元素。

接口声明

public interface Deque<E>
extends Queue<E>

ArrayDeque 类

java.util.ArrayDeque 类提供可调整大小的数组并实现 Deque 接口。以下是关于数组 Deques 的要点 −

  • 数组 Deques 没有容量限制,因此它们可以根据需要增长以支持使用。

  • 它们不是线程安全的;在没有外部同步的情况下。

  • 它们不支持多个线程并发访问。

  • 数组双端队列中禁止使用空元素。

  • 它们比 Stack 和 LinkedList 更快。

此类及其迭代器实现了 CollectionIterator 接口的所有可选方法。

类声明

以下是 java.util.ArrayDeque 类的声明 −

public class ArrayDeque<E>
extends AbstractCollection<E>
implements Deque<E>, Cloneable, Serializable

此处 <E> 表示元素,可以是任何类。例如,如果您正在构建一个整数数组列表,则应将其初始化为 −

ArrayList<Integer> list = new ArrayList<Integer>();

类构造函数

Sr.No.构造函数 &说明
1ArrayDeque()
此构造函数用于创建一个空数组双端队列,其初始容量足以容纳 16 个元素。
2ArrayDeque(Collection<? extends E> c)
此构造函数用于创建一个包含指定集合元素的双端队列。
3ArrayDeque(int numElements)
此构造函数用于创建一个空数组双端队列,其初始容量足以容纳指定数量的元素。

示例

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

public class Tester {
   public static void main(String[] args) {

      // 创建一个具有初始容量的空数组双端队列
      Deque<Integer> deque = new ArrayDeque<Integer>(5);

      // 使用 add() 方法在双端队列中添加元素
      deque.add(20);
      deque.add(30);
      deque.add(20);
      deque.add(30);
      deque.add(15);
      deque.add(22);
      deque.add(11);

      // 让我们打印 deque 中可用的所有元素
      for (Integer number : deque) {
         System.out.println("Number = " + number);
      }

      // getFirst() 将检索位于第一个位置的元素
      int first = deque.getFirst();
      System.out.println("Retrieved Element is = " + first);

      // getLast() 将检索最后一个位置的元素
      int last = deque.getLast();
      System.out.println("Retrieved Element is = " + last);
   }
}

输出

Number = 20
Number = 30
Number = 20
Number = 30
Number = 15
Number = 22
Number = 11
Retrieved Element is = 20
Retrieved Element is = 11

相关文章