Java ArrayDeque 类



介绍

Java ArrayDeque 类提供可调整大小的数组并实现Deque 接口。以下是关于 Array Deques 的重要要点:

  • Array deques 没有容量限制,因此它们会根据需要增长以支持使用。

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

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

  • Array deques 中禁止使用空元素。

  • 它们比 Stack 和 LinkedList 更快。

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

ArrayDeque 类声明

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

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

这里<E>表示一个元素,可以是任何类。例如,如果您正在构建一个整数的 ArrayDeque,则将其初始化为:

Deque<Integer> objDeque = new ArrayDeque<>();  

ArrayDeque 类构造函数

序号

构造函数和描述

1

ArrayDeque()

此构造函数用于创建一个空的 ArrayDeque,其初始容量足以容纳 16 个元素。

2

ArrayDeque(Collection<? extends E> c)

此构造函数用于创建一个包含指定集合元素的 deque。

3

ArrayDeque(int numElements)

此构造函数用于创建一个空的 ArrayDeque,其初始容量足以容纳指定数量的元素。

ArrayDeque 类方法

序号

方法和描述

1

boolean add(E e)

此方法将指定的元素插入到此 deque 的末尾。

2

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

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

3

void addFirst(E e)

此方法将指定的元素插入到此 deque 的开头。

4

void addLast(E e)

此方法将指定的元素插入到此 deque 的末尾。

5

void clear()

此方法从此 deque 中删除所有元素。

6

ArrayDeque<E> clone()

此方法返回此 deque 的副本。

7

boolean contains(Object o)

如果此 deque 包含指定的元素,则此方法返回 true。

8

E element()

此方法检索但不删除此 deque 表示的队列的头部。

9

void forEach​(Consumer<? super E> action)

此方法对 Iterable 的每个元素执行给定的操作,直到所有元素都已处理或操作引发异常。

10

E getFirst()

此方法检索但不删除此 deque 的第一个元素。

11

E getLast()

此方法检索但不删除此 deque 的最后一个元素。

12

boolean isEmpty()

如果此 deque 不包含任何元素,则此方法返回 true。

13

Iterator<E> iterator()

此方法返回此 deque 中元素的迭代器。

14

boolean offer(E e)

此方法将指定的元素插入到此 deque 的末尾。

15

boolean offerFirst(E e)

此方法将指定的元素插入到此 deque 的开头。

16

boolean offerLast(E e)

此方法将指定的元素插入到此 deque 的末尾。

17

E peek()

此方法检索但不删除此 deque 表示的队列的头部,或者如果此 deque 为空则返回 null。

18

E poll()

此方法检索并删除此 deque 表示的队列的头部,或者如果此 deque 为空则返回 null。

19

E pollFirst()

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

20

E pollLast()

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

21

E pop()

此方法从此 deque 表示的堆栈中弹出元素。

22

void push(E e)

此方法将元素压入此 deque 表示的堆栈。

23

E remove()

此方法检索并删除此 deque 表示的队列的头部。

24

boolean removeAll​(Collection<?> c)

此方法删除此集合中也包含在指定集合中的所有元素。

25

E removeFirst()

此方法检索并删除此 deque 的第一个元素。

26

boolean removeFirstOccurrence(Object o)

此方法删除此 deque 中指定元素的第一次出现。

27

boolean removeIf​(Predicate<? super E> filter)

此方法删除满足给定谓词的此集合的所有元素。

28

E removeLast()

此方法检索并删除此 deque 的最后一个元素。

29

boolean removeLastOccurrence(Object o)

此方法删除此 deque 中指定元素的最后一次出现。

30

boolean retainAll​(Collection<?> c)

此方法仅保留此集合中包含在指定集合中的元素(可选操作)。

31

int size()

此方法返回此 deque 中的元素数量。

32

Spliterator<E> spliterator()

此方法在此 deque 中的元素上创建一个延迟绑定且快速失败的 Spliterator。

33

object[] toArray()

此方法返回一个包含此 deque 中所有元素的数组,顺序正确。

从 ArrayDeque 中添加和删除元素示例

Java示例演示了如何使用 ArrayDeque 类。

// Importing classes
import java.util.ArrayDeque;
import java.util.Deque;

// Public Main Class
public class Main {
  public static void main(String[] args) {
    // The main() function
    Deque < Integer > objDeque = new ArrayDeque < > ();
    // Adding elements at first and last 
    objDeque.addFirst(15);
    objDeque.addLast(28);

    // Removing the elements
    int ele1 = objDeque.removeFirst();
    int ele2 = objDeque.removeLast();

    // Printing removed elements
    System.out.println("First removed element is : " + ele1);
    System.out.println("Last removed element is : " + ele2);
  }
}

输出

这将产生以下结果:

First removed element is : 15
Last removed element is : 28
广告