JavaTM 2 Platform
Standard Ed. 5.0

java.util
インタフェース Queue<E>

型パラメータ:
E - コレクション内に存在する要素の型
すべてのスーパーインタフェース:
Collection<E>, Iterable<E>
既知のサブインタフェースの一覧:
BlockingQueue<E>
既知の実装クラスの一覧:
AbstractQueue, ArrayBlockingQueue, ConcurrentLinkedQueue, DelayQueue, LinkedBlockingQueue, LinkedList, PriorityBlockingQueue, PriorityQueue, SynchronousQueue

public interface Queue<E>
extends Collection<E>

処理の前に要素を保持する目的で設計されたコレクション。キューにより、基本的な Collection オペレーションに加え、追加の挿入、抽出、および検査オペレーションが提供されます。

必ずしもその必要はありませんが、通常、キューは 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
関連項目:
Collection, LinkedList, PriorityQueue, LinkedBlockingQueue, BlockingQueue, ArrayBlockingQueue, LinkedBlockingQueue, PriorityBlockingQueue

メソッドの概要
 E element()
          キューの先頭を取得しますが、削除しません。
 boolean offer(E o)
          可能な場合、指定された要素をこのキューに挿入します。
 E peek()
          キューの先頭を取得しますが、削除しません。
 E poll()
          キューの先頭を取得および削除します。
 E remove()
          キューの先頭を取得および削除します。
 
インタフェース java.util.Collection から継承されたメソッド
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
 

メソッドの詳細

offer

boolean offer(E o)
可能な場合、指定された要素をこのキューに挿入します。容量制限などの挿入制限を課すキューを使用する場合、例外をスローするだけで要素の挿入に失敗する Collection.add(E) メソッドよりも offer メソッドを使用することをお勧めします。

パラメータ:
o - 挿入される要素
戻り値:
要素をこのキューに追加可能な場合は true、そうでない場合は false

poll

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

戻り値:
キューの先頭。キューが空の場合は null

remove

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

戻り値:
キューの先頭
例外:
NoSuchElementException - キューが空の場合

peek

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

戻り値:
キューの先頭。キューが空の場合は null

element

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

戻り値:
キューの先頭
例外:
NoSuchElementException - キューが空の場合

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。