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