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, toArrayboolean 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、それ以外の場合はfalseClassCastException - 指定された要素のクラスが原因で、このキューにその要素を追加できない場合NullPointerException - 指定された要素がnullで、このキューがnull要素を許可しない場合IllegalArgumentException - この要素のあるプロパティが原因で、このキューにその要素を追加できない場合E remove()
pollメソッドと異なります。NoSuchElementException - このキューが空の場合E poll()
nullを返します。nullE element()
peekメソッドと異なります。NoSuchElementException - このキューが空の場合E peek()
nullを返します。null バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.