|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
E - コレクション内に存在する要素の型public interface Queue<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)
指定された要素を、このキューに容量制限に違反することなしにすぐに挿入できる場合には、そうします。 |
E |
element()
キューの先頭を取得しますが、削除しません。 |
boolean |
offer(E e)
容量制限に違反せずにすぐ実行できる場合は、指定された要素をこのキューに挿入します。 |
E |
peek()
キューの先頭を取得しますが、削除しません。 |
E |
poll()
キューの先頭を取得および削除します。 |
E |
remove()
キューの先頭を取得および削除します。 |
| インタフェース java.util.Collection から継承されたメソッド |
|---|
addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray |
| メソッドの詳細 |
|---|
boolean add(E e)
Collection<E> 内の adde - 追加する要素
Collection.add(E) で指定されているとおり)
IllegalStateException - 容量制限のために要素をその時点で追加できない場合
ClassCastException - 指定された要素のクラスが原因で、キューに要素を追加できない場合
NullPointerException - 指定された要素が null であり、このキューが null 要素を許可しない場合
IllegalArgumentException - この要素のある特性が原因で、このキューにこの要素を追加できない場合boolean offer(E e)
add(E) よりも、このメソッドのほうを使用するようにしてください。
e - 追加する要素
ClassCastException - 指定された要素のクラスが原因で、キューに要素を追加できない場合
NullPointerException - 指定された要素が null であり、このキューが null 要素を許可しない場合
IllegalArgumentException - この要素のある特性が原因で、このキューにこの要素を追加できない場合E remove()
poll メソッドと異なります。
NoSuchElementException - キューが空の場合E poll()
E element()
peek メソッドと異なります。
NoSuchElementException - キューが空の場合E peek()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。