Java 中的 Deque 介面


java.util.Deque 介面是 java.util.Queue 介面的子型別,它支援在兩端插入和刪除元素。

介面宣告

public interface Deque<E>
extends Queue<E>

ArrayDeque 類

java.util.ArrayDeque 類提供可調整大小的陣列並實現 Deque 介面。以下是關於陣列雙端佇列的重要要點:

  • 陣列雙端佇列沒有容量限制,因此它們根據需要增長以支援使用。

  • 它們不是執行緒安全的;在沒有外部同步的情況下。

  • 它們不支援多個執行緒的併發訪問。

  • 陣列雙端佇列中不允許使用空元素。

  • 它們比 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>();

類建構函式

序號建構函式 & 描述
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) {

      // create an empty array deque with an initial capacity
      Deque<Integer> deque = new ArrayDeque<Integer>(5);

      // use add() method to add elements in the deque
      deque.add(20);
      deque.add(30);
      deque.add(20);
      deque.add(30);
      deque.add(15);
      deque.add(22);
      deque.add(11);

      // let us print all the elements available in deque
      for (Integer number : deque) {
         System.out.println("Number = " + number);
      }

      // getFirst() will retrieve element at first position
      int first = deque.getFirst();
      System.out.println("Retrieved Element is = " + first);

      // getLast() will retrieve element at last position
      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

更新於: 2020-06-21

377 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告