E
- このコレクション内に保持される要素の型public interface Queue<E> extends Collection<E>
Collection
操作に加えて、キューは追加の挿入、抽出および検査操作を提供します。これらのメソッドにはそれぞれ、2つの形式があります。1つは操作が失敗したときに例外をスローし、もう1つは特殊な値(操作に応じてnull
またはfalse
のいずれか)を返します。後者の形式の挿入操作は、容量の制限された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
メソッドの特殊な戻り値としても使用されるため、Queue
にnull
を挿入する操作は、それを許可する実装であっても行うべきではありません。
通常、Queue
実装は要素ベースのメソッドequals
およびhashCode
を定義せずに、Object
クラスからアイデンティティ・ベースのメソッドを継承します。これは、保持する要素が同じでも順序付けのプロパティが異なるキューの場合、要素ベースの等価性が常に十分に定義されているとは言えないためです。
このインタフェースは、Java Collections Frameworkのメンバーです。
Collection
, LinkedList
, PriorityQueue
, LinkedBlockingQueue
, BlockingQueue
, ArrayBlockingQueue
, LinkedBlockingQueue
, PriorityBlockingQueue
修飾子と型 | メソッドと説明 |
---|---|
boolean |
add(E e)
容量制限に違反することなく、指定された要素をこのキューにすぐに挿入できる場合はそうします。成功した場合は
true を返し、その時点で使用可能な空き領域が存在しない場合はIllegalStateException をスローします。 |
E |
element()
キューの先頭を取得しますが、削除しません。
|
boolean |
offer(E e)
容量制限に違反せずにすぐ実行できる場合は、指定された要素をこのキューに挿入します。
|
E |
peek()
キューの先頭を取得しますが、削除しません。キューが空の場合は
null を返します。 |
E |
poll()
キューの先頭を取得および削除します。キューが空の場合は
null を返します。 |
E |
remove()
キューの先頭を取得および削除します。
|
addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray
boolean add(E e)
true
を返し、その時点で使用可能な空き領域が存在しない場合はIllegalStateException
をスローします。add
、インタフェース: Collection<E>
e
- 追加する要素true
(Collection.add(E)
で指定されているとおり)IllegalStateException
- 容量制限のために、この時点で要素を追加できない場合ClassCastException
- 指定された要素のクラスが原因で、このキューにその要素を追加できない場合NullPointerException
- 指定された要素がnullで、このキューがnull要素を許可しない場合IllegalArgumentException
- この要素のあるプロパティが原因で、このキューにその要素を追加できない場合boolean offer(E e)
add(E)
よりもこのメソッドを使用することをお薦めします。e
- 追加する要素true
、それ以外の場合はfalse
ClassCastException
- 指定された要素のクラスが原因で、このキューにその要素を追加できない場合NullPointerException
- 指定された要素がnullで、このキューがnull要素を許可しない場合IllegalArgumentException
- この要素のあるプロパティが原因で、このキューにその要素を追加できない場合E remove()
poll
メソッドと異なります。NoSuchElementException
- このキューが空の場合E poll()
null
を返します。null
E element()
peek
メソッドと異なります。NoSuchElementException
- このキューが空の場合E peek()
null
を返します。null
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.