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 更快。
此类及其迭代器实现了 Collection 和 Iterator 接口的所有可选方法。
类声明
以下是 java.util.ArrayDeque 类的声明 −
public class ArrayDeque<E> extends AbstractCollection<E> implements Deque<E>, Cloneable, Serializable
此处 <E> 表示元素,可以是任何类。例如,如果您正在构建一个整数数组列表,则应将其初始化为 −
ArrayList<Integer> list = new ArrayList<Integer>();
类构造函数
Sr.No. | 构造函数 &说明 |
---|---|
1 | ArrayDeque() 此构造函数用于创建一个空数组双端队列,其初始容量足以容纳 16 个元素。 |
2 | ArrayDeque(Collection<? extends E> c) 此构造函数用于创建一个包含指定集合元素的双端队列。 |
3 | ArrayDeque(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