モジュール java.base
パッケージ java.util

クラスArrayDeque<E>

java.lang.Object
java.util.AbstractCollection<E>
java.util.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
関連項目: