クラスArrayDeque<E>

型パラメータ:
E - この両端キューに保持されている要 の型
すべての実装されたインタフェース:
Serializable, Cloneable, Iterable<E>, Collection<E>, Deque<E>, Queue<E>, SequencedCollection<E>

public class ArrayDeque<E> extends AbstractCollection<E> implements Deque<E>, Cloneable, Serializable
Dequeインタフェースのサイズ変更可能な配列の実装です。 配列の両端キューに容量制限はなく、使用量をサポートするために必要に応じて大きくなります。 それらはスレッドセーフではありません。外部の同期化がない 合、複数のスレッドによる並行アクセスはサポートされません。 null要 は禁止されています。 このクラスは通常、スタックとして使われるときはStackよりも高速で、キューとして使われるときはLinkedListよりも高速です。

ほとんどのArrayDequeオペレーションは、償却定数時間で実行されます。 例外には、removeremoveFirstOccurrenceremoveLastOccurrencecontainsiterator.remove()、および一括オペレーションがあり、これらはすべて要 の数に比例する時間で実行されます。

このクラスのiteratorメソッドによって返されるイテレータは、fail-fastです: イテレータの作成後いつでも、イテレータ独自のremoveメソッドを使用しないかぎり、デキューが変更された 合、イテレータは通常、ConcurrentModificationExceptionをスローします。 このように、並行して変更が行われると、イテレータは、将来の予測できない時点において予測できない動作が発生する危険を回避するために、た ちにかつ手際よく例外をスローします。

通常、非同期の並行変更がある 合、確かな保証を行うことは不可能なので、イテレータのフェイルファストの動作を保証することはできません。 フェイルファスト・イテレータは、ベスト・エフォート・ベースでConcurrentModificationExceptionをスローします。 したがって、正確を期すためにこの例外に依存するプログラ を書くことは誤りです。イテレータのフェイルファストの動作はバグを検出するためにのみ使用すべきです。

このクラスとそのイテレータは、CollectionSequencedCollectionおよびIteratorインタフェースのすべてのoptionalメソッドを実装します。

このクラスは、Java Collections Frameworkのメンバーです。

導入されたバージョン:
1.6
関連 目:
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    16個の要 を保持するために十分な初期容量を持つ、空の配列両端キューを作成します。
    ArrayDeque(int numElements)
    指定された数の要 を保持するために十分な初期容量を持つ、空の配列両端キューを作成します。
    ArrayDeque(Collection<? extends E> c)
    指定されたコレクションのイテレータが返す 序で、その要 を 納する両端キューを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    boolean
    add(E e)
    指定された要 をこの両端キューの末尾に挿入します。
    boolean
    addAll(Collection<? extends E> c)
    このデキューの最後に指定されたコレクション内のすべての要 を、コレクションのイテレータによって戻される 序で、各デキューに対してaddLast(E)をコールするかのように追 します。
    void
    指定された要 をこの両端キューの先 に挿入します。
    void
    指定された要 をこの両端キューの末尾に挿入します。
    void
    すべての要 を両端キューから削除します。
    この両端キューの複製を返します。
    boolean
    指定された要 がこの両端キューに含まれている 合にtrueを返します。
    この両端キュー内の要 を逆 で反復処理するイテレータを返します。
    この両端キューで表されるキューの先 を取得しますが、削除しません。
    void
    forEach(Consumer<? super E> action)
    Iterableの各要 に対して指定されたアクションを、すべての要 が処理されるか、アクションが例外をスローするまで実行します。
    この両端キューの最初の要 を取得しますが、削除はしません。
    この両端キューの最後の要 を取得しますが、削除はしません。
    boolean
    この両端キューに要 が含まれていない 合にtrueを返します。
    両端キューの要 のイテレータを返します。
    boolean
    offer(E e)
    指定された要 をこの両端キューの末尾に挿入します。
    boolean
    指定された要 をこの両端キューの先 に挿入します。
    boolean
    指定された要 をこの両端キューの末尾に挿入します。
    この両端キューによって表されるキューの先 を取得しますが、削除しません。両端キューが空の 合はnullを返します。
    この両端キューの最初の要 を取得しますが、削除しません。両端キューが空の 合はnullを返します。
    この両端キューの最後の要 を取得しますが、削除しません。両端キューが空の 合はnullを返します。
    この両端キューによって表されるキューの先 (つまり、この両端キューの最初の要 )を取得および削除します。両端キューが空の 合は、nullを返します。
    この両端キューの最初の要 を取得および削除します。両端キューが空の 合はnullを返します。
    この両端キューの最後の要 を取得および削除します。両端キューが空の 合はnullを返します。
    pop()
    この両端キューで表されるスタックに要 をポップします。
    void
    push(E e)
    この両端キューで表されるスタックに要 を入れます。
    この両端キューが表すキューの先 を取得して削除します。
    boolean
    指定された要 の単一のインスタンスを、この両端キューから削除します。
    boolean
    指定されたコレクションにも 納されているこのコレクションのすべての要 を削除します(オプションの操作)。
    この両端キューの最初の要 を取得して削除します。
    boolean
    両端キューを先 から末尾までトラバースするときに、この両端キューの指定された要 のうち最初に出現したものを削除します。
    boolean
    removeIf(Predicate<? super E> filter)
    指定された述語(オプションの操作)を満たす、このコレクションのすべての要 を削除します。
    この両端キューの最後の要 を取得して削除します。
    boolean
    両端キューを先 から末尾までトラバースするときに、この両端キューの指定された要 のうち最後に出現したものを削除します。
    boolean
    このコレクションにおいて、指定されたコレクションに 納されている要  けを保持します(オプションの操作)。
    int
    この両端キュー内の要 の数を返します。
    この両端キュー内の要 に対する遅延バインディングおよびフェイルファスト Spliteratorを作成します。
    両端キュー内のすべての要 を適切な 序(最初の要 から最後の要 へ)で 納している配列を返します。
    <T> T[]
    toArray(T[] a)
    両端キュー内のすべての要 を適切な 序(最初の要 から最後の要 へ)で 納している配列を返します。返される配列の実行時の型は、指定された配列の型になります。

    クラスjava.util.AbstractCollectionで宣言されたメソッド

    containsAll, toString

    クラスjava.lang.Objectで宣言されたメソッド

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    インタフェースjava.util.Collectionで宣言されたメソッド

    containsAll, equals, hashCode, parallelStream, stream, toArray

    インタフェースjava.util.Dequeで宣言されたメソッド

    reversed
  • コンストラクタの詳細

    • ArrayDeque

      public ArrayDeque()
      16個の要 を保持するために十分な初期容量を持つ、空の配列両端キューを作成します。
    • ArrayDeque

      public ArrayDeque(int numElements)
      指定された数の要 を保持するために十分な初期容量を持つ、空の配列両端キューを作成します。
      パラメータ:
      numElements - 両端キューの初期容量の範囲の下限
    • ArrayDeque

      public ArrayDeque(Collection<? extends E> c)
      指定されたコレクションのイテレータが返す 序で、その要 を 納する両端キューを作成します。 コレクションのイテレータによって返される最初の要 が、最初の要 、つまり両端キューの先 になります。
      パラメータ:
      c - 要 が両端キューに配置されるコレクション
      スロー:
      NullPointerException - 指定されたコレクションがnullである 合
  • メソッドの詳細

    • addFirst

      public void addFirst(E e)
      指定された要 をこの両端キューの先 に挿入します。
      定義:
      addFirst、インタフェースDeque<E>
      定義:
      インタフェースSequencedCollection<E>内のaddFirst
      パラメータ:
      e - 追 する要 
      スロー:
      NullPointerException - 指定された要 がnullである 合
    • addLast

      public void addLast(E e)
      指定された要 をこの両端キューの末尾に挿入します。

      このメソッドは、add(E)と同等です。

      定義:
      addLast、インタフェースDeque<E>
      定義:
      インタフェースSequencedCollection<E>内のaddLast
      パラメータ:
      e - 追 する要 
      スロー:
      NullPointerException - 指定された要 がnullである 合
    • addAll

      public boolean addAll(Collection<? extends E> c)
      このデキューの最後に指定されたコレクション内のすべての要 を、コレクションのイテレータによって戻される 序で、各デキューに対してaddLast(E)をコールするかのように追 します。
      定義:
      addAll、インタフェースCollection<E>
      定義:
      インタフェースDeque<E>内のaddAll
      オーバーライド:
      addAll、クラスAbstractCollection<E>
      パラメータ:
      c - この両端キューに挿入される要 
      戻り値:
      この呼出しの結果、この両端キューが変更された 合はtrue
      スロー:
      NullPointerException - 指定されたコレクションまたはそのいずれかの要 がnullである 合
      関連 目:
    • offerFirst

      public boolean offerFirst(E e)
      指定された要 をこの両端キューの先 に挿入します。
      定義:
      offerFirst、インタフェースDeque<E>
      パラメータ:
      e - 追 する要 
      戻り値:
      true (Deque.offerFirst(E)で指定されているとおり)
      スロー:
      NullPointerException - 指定された要 がnullである 合
    • offerLast

      public boolean offerLast(E e)
      指定された要 をこの両端キューの末尾に挿入します。
      定義:
      offerLast、インタフェースDeque<E>
      パラメータ:
      e - 追 する要 
      戻り値:
      true (Deque.offerLast(E)で指定されているとおり)
      スロー:
      NullPointerException - 指定された要 がnullである 合
    • removeFirst

      public E removeFirst()
      インタフェースからコピーされた説明: Deque
      この両端キューの最初の要 を取得して削除します。 このメソッドは、両端キューが空の 合に例外をスローする点のみがpollFirstメソッドと異なります。
      定義:
      removeFirst、インタフェースDeque<E>
      定義:
      インタフェースSequencedCollection<E>内のremoveFirst
      戻り値:
      この両端キューの先 
      スロー:
      NoSuchElementException - この両端キューが空の 合
    • removeLast

      public E removeLast()
      インタフェースからコピーされた説明: Deque
      この両端キューの最後の要 を取得して削除します。 このメソッドは、両端キューが空の 合に例外をスローする点のみがpollLastメソッドと異なります。
      定義:
      removeLast、インタフェースDeque<E>
      定義:
      インタフェースSequencedCollection<E>内のremoveLast
      戻り値:
      この両端キューの末尾
      スロー:
      NoSuchElementException - この両端キューが空の 合
    • pollFirst

      public E pollFirst()
      インタフェースからコピーされた説明: Deque
      この両端キューの最初の要 を取得および削除します。両端キューが空の 合はnullを返します。
      定義:
      pollFirst、インタフェースDeque<E>
      戻り値:
      この両端キューの先 。この両端キューが空の 合はnull
    • pollLast

      public E pollLast()
      インタフェースからコピーされた説明: Deque
      この両端キューの最後の要 を取得および削除します。両端キューが空の 合はnullを返します。
      定義:
      pollLast、インタフェースDeque<E>
      戻り値:
      この両端キューの末尾。この両端キューが空の 合はnull
    • getFirst

      public E getFirst()
      インタフェースからコピーされた説明: Deque
      この両端キューの最初の要 を取得しますが、削除はしません。 このメソッドは、両端キューが空の 合に例外をスローする点のみがpeekFirstメソッドと異なります。
      定義:
      getFirst、インタフェースDeque<E>
      定義:
      インタフェースSequencedCollection<E>内のgetFirst
      戻り値:
      この両端キューの先 
      スロー:
      NoSuchElementException - この両端キューが空の 合
    • getLast

      public E getLast()
      インタフェースからコピーされた説明: Deque
      この両端キューの最後の要 を取得しますが、削除はしません。 このメソッドは、両端キューが空の 合に例外をスローする点のみがpeekLastメソッドと異なります。
      定義:
      getLast、インタフェースDeque<E>
      定義:
      インタフェースSequencedCollection<E>内のgetLast
      戻り値:
      この両端キューの末尾
      スロー:
      NoSuchElementException - この両端キューが空の 合
    • peekFirst

      public E peekFirst()
      インタフェースからコピーされた説明: Deque
      この両端キューの最初の要 を取得しますが、削除しません。両端キューが空の 合はnullを返します。
      定義:
      peekFirst、インタフェースDeque<E>
      戻り値:
      この両端キューの先 。この両端キューが空の 合はnull
    • peekLast

      public E peekLast()
      インタフェースからコピーされた説明: Deque
      この両端キューの最後の要 を取得しますが、削除しません。両端キューが空の 合はnullを返します。
      定義:
      peekLast、インタフェースDeque<E>
      戻り値:
      この両端キューの末尾。この両端キューが空の 合はnull
    • removeFirstOccurrence

      public boolean removeFirstOccurrence(Object o)
      両端キューを先 から末尾までトラバースするときに、この両端キューの指定された要 のうち最初に出現したものを削除します。 その要 が両端キューにない 合、変更はありません。 つまり、o.equals(e)となる最初の要 eが存在する 合は、その要 を削除します。 指定された要 がこの両端キューに含まれていた 合(すなわち、呼出しの結果としてこの両端キューが変更された 合)はtrueを返します。
      定義:
      removeFirstOccurrence、インタフェースDeque<E>
      パラメータ:
      o - この両端キューから削除される要 (その要 が存在する 合)
      戻り値:
      指定された要 がこの両端キューに含まれていた 合はtrue
    • removeLastOccurrence

      public boolean removeLastOccurrence(Object o)
      両端キューを先 から末尾までトラバースするときに、この両端キューの指定された要 のうち最後に出現したものを削除します。 その要 が両端キューにない 合、変更はありません。 つまり、o.equals(e)となる最後の要 eが存在する 合は、その要 を削除します。 指定された要 がこの両端キューに含まれていた 合(すなわち、呼出しの結果としてこの両端キューが変更された 合)はtrueを返します。
      定義:
      removeLastOccurrence、インタフェースDeque<E>
      パラメータ:
      o - この両端キューから削除される要 (その要 が存在する 合)
      戻り値:
      指定された要 がこの両端キューに含まれていた 合はtrue
    • add

      public boolean add(E e)
      指定された要 をこの両端キューの末尾に挿入します。

      このメソッドは、addLast(E)と同等です。

      定義:
      add、インタフェースCollection<E>
      定義:
      add、インタフェースDeque<E>
      定義:
      add、インタフェースQueue<E>
      オーバーライド:
      add、クラスAbstractCollection<E>
      パラメータ:
      e - 追 する要 
      戻り値:
      true (Collection.add(E)で指定されているとおり)
      スロー:
      NullPointerException - 指定された要 がnullである 合
    • offer

      public boolean offer(E e)
      指定された要 をこの両端キューの末尾に挿入します。

      このメソッドは、offerLast(E)と同等です。

      定義:
      offer、インタフェースDeque<E>
      定義:
      offer、インタフェースQueue<E>
      パラメータ:
      e - 追 する要 
      戻り値:
      true (Queue.offer(E)で指定されているとおり)
      スロー:
      NullPointerException - 指定された要 がnullである 合
    • remove

      public E remove()
      この両端キューが表すキューの先 を取得して削除します。 このメソッドは、両端キューが空の 合に例外をスローする点のみがpoll()メソッドと異なります。

      このメソッドは、removeFirst()と同等です。

      定義:
      remove、インタフェースDeque<E>
      定義:
      remove、インタフェースQueue<E>
      戻り値:
      この両端キューで表されるキューの先 
      スロー:
      NoSuchElementException - この両端キューが空の 合
    • poll

      public E poll()
      この両端キューによって表されるキューの先 (つまり、この両端キューの最初の要 )を取得および削除します。両端キューが空の 合は、nullを返します。

      このメソッドは、pollFirst()と同等です。

      定義:
      poll、インタフェースDeque<E>
      定義:
      poll、インタフェースQueue<E>
      戻り値:
      この両端キューで表されるキューの先 。この両端キューが空の 合はnull
    • element

      public E element()
      この両端キューで表されるキューの先 を取得しますが、削除しません。 このメソッドは、両端キューが空の 合に例外をスローする点のみがpeekメソッドと異なります。

      このメソッドは、getFirst()と同等です。

      定義:
      element、インタフェースDeque<E>
      定義:
      element、インタフェースQueue<E>
      戻り値:
      この両端キューで表されるキューの先 
      スロー:
      NoSuchElementException - この両端キューが空の 合
    • peek

      public E peek()
      この両端キューによって表されるキューの先 を取得しますが、削除しません。両端キューが空の 合はnullを返します。

      このメソッドは、peekFirst()と同等です。

      定義:
      peek、インタフェースDeque<E>
      定義:
      peek、インタフェースQueue<E>
      戻り値:
      この両端キューで表されるキューの先 。この両端キューが空の 合はnull
    • push

      public void push(E e)
      この両端キューで表されるスタックに要 を入れます。 つまり、要 をこの両端キューの先 に挿入します。

      このメソッドは、addFirst(E)と同等です。

      定義:
      push、インタフェースDeque<E>
      パラメータ:
      e - プッシュする要 
      スロー:
      NullPointerException - 指定された要 がnullである 合
    • pop

      public E pop()
      この両端キューで表されるスタックに要 をポップします。 つまり、この両端キューの最初の要 を削除して返します。

      このメソッドは、removeFirst()と同等です。

      定義:
      pop、インタフェースDeque<E>
      戻り値:
      この両端キューの先 の要 (この両端キューによって表されるスタックの上部)
      スロー:
      NoSuchElementException - この両端キューが空の 合
    • size

      public int size()
      この両端キュー内の要 の数を返します。
      定義:
      size、インタフェースCollection<E>
      定義:
      size、インタフェースDeque<E>
      戻り値:
      この両端キュー内の要 の数
    • isEmpty

      public boolean isEmpty()
      この両端キューに要 が含まれていない 合にtrueを返します。
      定義:
      isEmpty、インタフェースCollection<E>
      オーバーライド:
      isEmpty、クラスAbstractCollection<E>
      戻り値:
      この両端キューに要 が含まれていない 合はtrue
    • iterator

      public Iterator<E> iterator()
      両端キューの要 のイテレータを返します。 要 の 序は最初(先 )から最後(末尾)になります。 これは、要 がremove()の連続する呼出しによってキューから取り出される 序、またはpop()の連続する呼出しによってポップされる 序と同じです。
      定義:
      iterator、インタフェースCollection<E>
      定義:
      iterator、インタフェースDeque<E>
      定義:
      iterator、インタフェースIterable<E>
      定義:
      iterator、クラスAbstractCollection<E>
      戻り値:
      両端キューの要 のイテレータ
    • descendingIterator

      public Iterator<E> descendingIterator()
      インタフェースからコピーされた説明: Deque
      この両端キュー内の要 を逆 で反復処理するイテレータを返します。 要 は最後(末尾)から最初(先 )の に返されます。
      定義:
      descendingIterator、インタフェースDeque<E>
      戻り値:
      この両端キュー内の要 を逆 で反復処理するイテレータ
    • spliterator

      public Spliterator<E> spliterator()
      この両端キュー内の要 に対する遅延バインディングおよびフェイルファスト Spliteratorを作成します。

      Spliteratorは、Spliterator.SIZEDSpliterator.SUBSIZEDSpliterator.ORDERED、およびSpliterator.NONNULLを 告します。 オーバーライドする実装は、追 の特性値の 告をドキュメント化する必要があります。

      定義:
      spliterator、インタフェースCollection<E>
      定義:
      spliterator、インタフェースIterable<E>
      戻り値:
      この両端キュー内の要 に対するSpliterator
      導入されたバージョン:
      1.8
    • forEach

      public void forEach(Consumer<? super E> action)
      インタフェースからコピーされた説明: Iterable
      Iterableの各要 に対して指定されたアクションを、すべての要 が処理されるか、アクションが例外をスローするまで実行します。 反復の 序でアクションが実行されます(その 序が指定されている 合)。 アクションによってスローされた例外は、呼出し側に中継されます。

      このメソッドの動作は、オーバーライドするクラスが同時変更ポリシーを指定していないかぎり、要 の基礎となるソースを変更する副作用をアクションが実行する 合には指定されません。

      定義:
      forEach、インタフェースIterable<E>
      パラメータ:
      action - 各要 に対して実行されるアクション
      スロー:
      NullPointerException - 指定されたアクションがnullである 合
    • removeIf

      public boolean removeIf(Predicate<? super E> filter)
      次のインタフェースからコピーされた説明: Collection
      指定された述語(オプションの操作)を満たす、このコレクションのすべての要 を削除します。 反復中に、または述語によってスローされたエラーまたは実行時例外は、呼出し側に中継されます。
      定義:
      removeIf、インタフェースCollection<E>
      パラメータ:
      filter - 削除される要 に対してtrueを返す述語
      戻り値:
      要 が削除された 合はtrue
      スロー:
      NullPointerException - 指定されたフィルタがnullである 合
    • removeAll

      public boolean removeAll(Collection<?> c)
      次のクラスからコピーされた説明: AbstractCollection
      指定されたコレクションにも 納されているこのコレクションのすべての要 を削除します(オプションの操作)。 この呼出しの結果、このコレクションには指定されたコレクションと共通の要 はなくなります。
      定義:
      removeAll、インタフェースCollection<E>
      オーバーライド:
      removeAll、クラスAbstractCollection<E>
      パラメータ:
      c - このコレクションから削除される要 を含むコレクション
      戻り値:
      コールの結果としてこのコレクションが変更された 合、true
      スロー:
      NullPointerException - このコレクションに1つ以上のnull要 が含まれ、指定したコレクションがnull要 (optional)をサポートしていない 合、または指定されたコレクションがnullの 合
      関連 目:
    • retainAll

      public boolean retainAll(Collection<?> c)
      次のクラスからコピーされた説明: AbstractCollection
      このコレクションにおいて、指定されたコレクションに 納されている要  けを保持します(オプションの操作)。 つまり、指定されたコレクションに 納されていないすべての要 をこのコレクションから削除します。
      定義:
      retainAll、インタフェースCollection<E>
      オーバーライド:
      retainAll、クラスAbstractCollection<E>
      パラメータ:
      c - このコレクションで保持される要 を含むコレクション
      戻り値:
      コールの結果としてこのコレクションが変更された 合、true
      スロー:
      NullPointerException - このコレクションに1つ以上のnull要 が含まれ、指定したコレクションでnull要 (optional)が許可されていない 合、または指定されたコレクションがnullの 合
      関連 目:
    • contains

      public boolean contains(Object o)
      指定された要 がこの両端キューに含まれている 合にtrueを返します。 つまり、この両端キューに、o.equals(e)となる要 eが1つ以上含まれている 合に けtrueを返します。
      定義:
      contains、インタフェースCollection<E>
      定義:
      contains、インタフェースDeque<E>
      オーバーライド:
      contains、クラスAbstractCollection<E>
      パラメータ:
      o - この両端キューに含まれているかどうかを調べるオブジェクト
      戻り値:
      指定された要 がこの両端キューに含まれている 合はtrue
    • remove

      public boolean remove(Object o)
      指定された要 の単一のインスタンスを、この両端キューから削除します。 その要 が両端キューにない 合、変更はありません。 つまり、o.equals(e)となる最初の要 eが存在する 合は、その要 を削除します。 指定された要 がこの両端キューに含まれていた 合(すなわち、呼出しの結果としてこの両端キューが変更された 合)はtrueを返します。

      このメソッドは、removeFirstOccurrence(Object)と同等です。

      定義:
      remove、インタフェースCollection<E>
      定義:
      remove、インタフェースDeque<E>
      オーバーライド:
      remove、クラスAbstractCollection<E>
      パラメータ:
      o - この両端キューから削除される要 (その要 が存在する 合)
      戻り値:
      指定された要 がこの両端キューに含まれていた 合はtrue
    • clear

      public void clear()
      すべての要 を両端キューから削除します。 この呼出しが戻ると、両端キューは空になります。
      定義:
      clear、インタフェースCollection<E>
      オーバーライド:
      clear、クラスAbstractCollection<E>
    • toArray

      public Object[] toArray()
      両端キュー内のすべての要 を適切な 序(最初の要 から最後の要 へ)で 納している配列を返します。

      返される配列への参照を両端キューが維持しないという点で、この配列は安全です。 (つまり、このメソッドは新しい配列を割り当てます)。 このため、呼出し側は、返された配列を自由に変更できます。

      このメソッドは、配列ベースのAPIとコレクションベースのAPIの間の橋渡し役として機能します。

      定義:
      toArray、インタフェースCollection<E>
      オーバーライド:
      toArray、クラスAbstractCollection<E>
      戻り値:
      両端キューのすべての要 が 納されている配列
    • toArray

      public <T> T[] toArray(T[] a)
      両端キュー内のすべての要 を適切な 序(最初の要 から最後の要 へ)で 納している配列を返します。返される配列の実行時の型は、指定された配列の型になります。 指定された配列に両端キューが収まる 合は、その中に返されます。 そうでない 合は、指定された配列の実行時の型と両端キューのサイズを持つ新しい配列が割り当てられます。

      両端キューが指定された配列に収まり、その配列にさらに余裕がある 合(つまり、配列が両端キューより多くの要 を持つ 合)、その配列内で両端キューの終端よりあとの要 はnullに設定されます。

      toArray()メソッドと同じように、このメソッドは、配列ベースのAPIとコレクションベースのAPIの間の橋渡し役として機能します。 さらに、このメソッドでは出力配列の実行時の型を正確に制御できるため、環境によっては割当ての手間を抑えるために使用できます。

      xが、文字列 けからなる両端キューであることがわかっていると仮定します。 次のコードを使うと、新しく割り当てられたStringの配列に両端キューをダンプできます。

       String[] y = x.toArray(new String[0]);
      toArray(new Object[0])は、機能の点でtoArray()と同一です。

      定義:
      toArray、インタフェースCollection<E>
      オーバーライド:
      toArray、クラスAbstractCollection<E>
      型パラメータ:
      T - コレクションを 納する配列のコンポーネント型
      パラメータ:
      a - 配列が十分な大きさを持つ 合は、両端キューの要 が 納される配列。そうでない 合は、要 を 納するために同じ実行時の型の新しい配列が割り当てられる
      戻り値:
      両端キューのすべての要 が 納されている配列
      スロー:
      ArrayStoreException - 指定された配列の実行時の型が、この両端キュー内のすべての要 の実行時の型のスーパー・タイプでない 合
      NullPointerException - 指定された配列がnullである 合
    • clone

      public ArrayDeque<E> clone()
      この両端キューの複製を返します。
      オーバーライド:
      clone、クラスObject
      戻り値:
      この両端キューのコピー
      関連 目: