インタフェースQueue<E>

型パラメータ:
E - このキューに保持されている要素の型
すべてのスーパー・インタフェース:
Collection<E>, Iterable<E>
既知のすべてのサブインタフェース:
BlockingDeque<E>, BlockingQueue<E>, Deque<E>, TransferQueue<E>
既知のすべての実装クラス:
AbstractQueue, ArrayBlockingQueue, ArrayDeque, ConcurrentLinkedDeque, ConcurrentLinkedQueue, DelayQueue, LinkedBlockingDeque, LinkedBlockingQueue, LinkedList, LinkedTransferQueue, PriorityBlockingQueue, PriorityQueue, SynchronousQueue

public interface Queue<E> extends Collection<E>
処理の前に要素を保持するために設計されたコレクション。 基本的なCollection操作に加えて、キューは追加の挿入、抽出および検査操作を提供します。 これらのメソッドにはそれぞれ、2つの形式があります。1つは操作が失敗したときに例外をスローし、もう1つは特殊な値(操作に応じてnullまたはfalseのいずれか)を返します。 後者の形式の挿入操作は、容量の制限されたQueue実装で使用するために設計されています。ほとんどの実装で挿入操作は失敗できません。
Queueメソッドのサマリー
例外のスロー 特殊な値を返す
挿入 add(e) offer(e)
削除 remove() poll()
調査 element() peek()

必ずしもその必要はありませんが、通常、キューはFIFO (先入れ先出し)で要素の順序付けを行います。 優先度キューは例外で、指定されたコンパレータ(要素の自然順序付け)、およびLIFOキュー(またはスタック)に従って要素の順序付けを行います。LIFOキューでは、LIFO (後入れ先出し)で要素が順序付けされます。 使用される順序付けにかかわらず、キューの先頭remove()またはpoll()呼出しによって削除される要素です。 FIFOキューでは、すべての新しい要素はキューの末尾に挿入されます。 ほかの種類のキューでは、使用される配置ルールが異なる場合があります。 すべてのQueue実装は、順序付けプロパティを指定する必要があります。

offerメソッドは、可能であれば要素を挿入し、可能でなければfalseを返します。 これが、要素の挿入に失敗したときに非チェック例外をスローするだけになる場合があるCollection.addメソッドと異なる点です。 たとえば、固定容量(または「バウンド」)キューが原因で発生する場合のように、offerメソッドは、失敗が例外的ではなく通常のことである場合に使用する目的で設計されています。

remove()およびpoll()メソッドは、キューの先頭を削除して返します。 正確にどの要素をキューから削除するかは、キューの順序付けポリシーの役割であり、実装により異なります。 remove()およびpoll()メソッドは、キューが空のときの動作だけが異なります。remove()メソッドは例外をスローし、poll()メソッドはnullを返します。

element()およびpeek()メソッドは、キューの先頭を返しますが、削除は行いません。

Queueインタフェースは、並行プログラミングでは一般的なブロッキング・キュー・メソッドを定義しません。 これらのメソッドは、このインタフェースを拡張するBlockingQueueインタフェース内で定義され、要素が出現するか空きが生じるまで待機します。

LinkedListなどの一部の実装はnull要素の挿入を許可するのに対し、通常、Queue実装はnullの挿入を許可しません。 nullはキューに要素が含まれないことを示すpollメソッドの特殊な戻り値としても使用されるため、Queuenullを挿入する操作は、それを許可する実装であっても行うべきではありません。

通常、Queue実装は要素ベースのメソッドequalsおよびhashCodeを定義せずに、Objectクラスからアイデンティティ・ベースのメソッドを継承します。これは、保持する要素が同じでも順序付けのプロパティが異なるキューの場合、要素ベースの等価性が常に十分に定義されているとは言えないためです。

このインタフェースは、Java Collections Frameworkのメンバーです。

導入されたバージョン:
1.5
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    boolean
    add(E e)
    容量制限に違反することなく、指定された要素をこのキューにすぐに挿入できる場合はそうします。成功した場合はtrueを返し、その時点で使用可能な空き領域が存在しない場合はIllegalStateExceptionをスローします。
    キューの先頭を取得しますが、削除しません。
    boolean
    offer(E e)
    容量制限に違反せずにすぐ実行できる場合は、指定された要素をこのキューに挿入します。
    キューの先頭を取得しますが、削除しません。キューが空の場合はnullを返します。
    キューの先頭を取得および削除します。キューが空の場合はnullを返します。
    キューの先頭を取得および削除します。

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

    addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray, toArray
    修飾子と型
    メソッド
    説明
    boolean
    addAll(Collection<? extends E> c)
    指定されたコレクションのすべての要素をこのコレクションに追加します(オプションの操作)。
    void
    このコレクションからすべての要素を削除します(オプションの操作)。
    boolean
    このコレクションに指定した要素が含まれている場合は、trueを返します。
    boolean
    指定したコレクションのすべての要素がこのコレクションに含まれている場合、trueを返します。
    boolean
    指定されたオブジェクトとこのコレクションが等しいかどうかを比較します。
    int
    コレクションのハッシュ・コード値を返します。
    boolean
    このコレクションに要素がない場合にtrueを返します。
    コレクションの要素のイテレータを返します。
    default Stream<E>
    このコレクションをソースとして、潜在的に並列のStreamを返します。
    boolean
    指定された要素のインスタンスがこのコレクションにあれば、そのインスタンスをコレクションから1つ削除します(オプションの操作)。
    boolean
    指定されたコレクションにも格納されているこのコレクションのすべての要素を削除します(オプションの操作)。
    default boolean
    removeIf(Predicate<? super E> filter)
    指定された述語(オプションの操作)を満たす、このコレクションのすべての要素を削除します。
    boolean
    このコレクションにおいて、指定されたコレクションに格納されている要素だけを保持します(オプションの操作)。
    int
    このコレクション中の要素の数を返します。
    default Spliterator<E>
    このコレクション内の要素に対するSpliteratorを作成します。
    default Stream<E>
    このコレクションをソースとして使用して、逐次的なStreamを返します。
    このコレクションの要素がすべて格納されている配列を返します。
    default <T> T[]
    toArray(IntFunction<T[]> generator)
    指定されたgenerator関数を使用してこのコレクションのすべての要素を含む配列を返し、返された配列を割り当てます。
    <T> T[]
    toArray(T[] a)
    このコレクション内のすべての要素を保持する配列を返します。返される配列の実行時の型は、指定された配列の型です。

    インタフェースIterableで宣言されたメソッド

    forEach
    修飾子と型
    メソッド
    説明
    default void
    forEach(Consumer<? super E> action)
    Iterableの各要素に対して指定されたアクションを、すべての要素が処理されるか、アクションが例外をスローするまで実行します。
  • メソッドの詳細

    • add

      boolean add(E e)
      容量制限に違反することなく、指定された要素をこのキューにすぐに挿入できる場合はそうします。成功した場合はtrueを返し、その時点で使用可能な空き領域が存在しない場合はIllegalStateExceptionをスローします。
      定義:
      add、インタフェースCollection<E>
      パラメータ:
      e - 追加する要素
      戻り値:
      true (Collection.add(E)で指定されているとおり)
      スロー:
      IllegalStateException - 容量制限のために、この時点で要素を追加できない場合
      ClassCastException - 指定された要素のクラスが原因で、このキューにその要素を追加できない場合
      NullPointerException - 指定された要素がnullで、このキューがnull要素を許可しない場合
      IllegalArgumentException - この要素のあるプロパティが原因で、このキューにその要素を追加できない場合
    • offer

      boolean offer(E e)
      容量制限に違反せずにすぐ実行できる場合は、指定された要素をこのキューに挿入します。 容量制限のあるキューを使用する場合、通常は、要素の挿入に失敗した場合に例外をスローするだけのadd(E)よりもこのメソッドを使用することをお薦めします。
      パラメータ:
      e - 追加する要素
      戻り値:
      このキューに要素が追加された場合はtrue、それ以外の場合はfalse
      スロー:
      ClassCastException - 指定された要素のクラスが原因で、このキューにその要素を追加できない場合
      NullPointerException - 指定された要素がnullで、このキューがnull要素を許可しない場合
      IllegalArgumentException - この要素のあるプロパティが原因で、このキューにその要素を追加できない場合
    • remove

      E remove()
      キューの先頭を取得および削除します。 このメソッドは、キューが空の場合に例外をスローする点のみがpoll()メソッドと異なります。
      戻り値:
      キューの先頭
      スロー:
      NoSuchElementException - このキューが空の場合
    • poll

      E poll()
      キューの先頭を取得および削除します。キューが空の場合はnullを返します。
      戻り値:
      キューの先頭。キューが空の場合はnull
    • element

      E element()
      キューの先頭を取得しますが、削除しません。 このメソッドは、キューが空の場合に例外をスローする点のみがpeekメソッドと異なります。
      戻り値:
      キューの先頭
      スロー:
      NoSuchElementException - このキューが空の場合
    • peek

      E peek()
      キューの先頭を取得しますが、削除しません。キューが空の場合はnullを返します。
      戻り値:
      キューの先頭。キューが空の場合はnull