JavaTM Platform
Standard Ed. 6

java.util
クラス AbstractQueue<E>

java.lang.Object
  上位を拡張 java.util.AbstractCollection<E>
      上位を拡張 java.util.AbstractQueue<E>
型パラメータ:
E - コレクション内に存在する要素の型
すべての実装されたインタフェース:
Iterable<E>, Collection<E>, Queue<E>
直系の既知のサブクラス:
ArrayBlockingQueue, ConcurrentLinkedQueue, DelayQueue, LinkedBlockingDeque, LinkedBlockingQueue, PriorityBlockingQueue, PriorityQueue, SynchronousQueue

public abstract class AbstractQueue<E>
extends AbstractCollection<E>
implements Queue<E>

このクラスは、いくつかの Queue オペレーションのスケルトン実装を提供します。このクラス内の実装が適切なのは、ベース実装で null 要素が許可されない場合です。addremove、および element メソッドは、それぞれ offerpoll、および peek に基づいていますが、false または null を返して失敗を示す代わりに、例外をスローします。

このクラスを拡張する Queue 実装は、Iterator.remove() をサポートする Queue.peek()Queue.poll()Collection.size()、および Collection.iterator() とともに、null 要素の挿入を許可しない Queue.offer(E) メソッドを最低限定義する必要があります。通常、追加メソッドもオーバーライドされます。これらの要件を満たすことができない場合、AbstractCollection のサブクラス化を考慮してください。

このクラスは、Java Collections Framework のメンバーです。

導入されたバージョン:
1.5

コンストラクタの概要
protected AbstractQueue()
          サブクラスにより使用されるコンストラクタです。
 
メソッドの概要
 boolean add(E e)
          指定された要素を、このキューに容量制限に違反することなしにすぐに挿入できる場合には、そうします。
 boolean addAll(Collection<? extends E> c)
          指定されたコレクション内のすべての要素をこのキューに追加します。
 void clear()
          すべての要素をキューから削除します。
 E element()
          キューの先頭を取得しますが、削除しません。
 E remove()
          キューの先頭を取得および削除します。
 
クラス java.util.AbstractCollection から継承されたメソッド
contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray, toString
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
インタフェース java.util.Queue から継承されたメソッド
offer, peek, poll
 
インタフェース java.util.Collection から継承されたメソッド
contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
 

コンストラクタの詳細

AbstractQueue

protected AbstractQueue()
サブクラスにより使用されるコンストラクタです。

メソッドの詳細

add

public boolean add(E e)
指定された要素を、このキューに容量制限に違反することなしにすぐに挿入できる場合には、そうします。成功した場合は true を返し、使用可能な空き領域がその時点で存在しない場合は IllegalStateException をスローします。

この実装は、offer が成功した場合は true を返し、そうでない場合には IllegalStateException をスローします。

定義:
インタフェース Collection<E> 内の add
定義:
インタフェース Queue<E> 内の add
オーバーライド:
クラス AbstractCollection<E> 内の add
パラメータ:
e - 追加する要素
戻り値:
true (Collection.add(E) で指定された場合と同様)
例外:
IllegalStateException - 容量制限が原因でこの時点で要素を追加できない場合
ClassCastException - 指定された要素のクラスが原因で、キューに要素を追加できない場合
NullPointerException - 指定された要素が null で、このキューが null 要素を許容しない場合
IllegalArgumentException - この要素のある特性が原因で、このキューに要素を追加できない場合

remove

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

キューが空でないかぎり、この実装は poll の結果を返します。

定義:
インタフェース Queue<E> 内の remove
戻り値:
キューの先頭
例外:
NoSuchElementException - キューが空の場合

element

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

キューが空でないかぎり、この実装は peek の結果を返します。

定義:
インタフェース Queue<E> 内の element
戻り値:
キューの先頭
例外:
NoSuchElementException - キューが空の場合

clear

public void clear()
すべての要素をキューから削除します。この呼び出しが戻ると、キューは空になります。

この実装は、null が返されるまで、繰り返し poll を呼び出します。

定義:
インタフェース Collection<E> 内の clear
オーバーライド:
クラス AbstractCollection<E> 内の clear

addAll

public boolean addAll(Collection<? extends E> c)
指定されたコレクション内のすべての要素をこのキューに追加します。キューのすべてをそれ自体に追加しようとすると、IllegalArgumentException がスローされます。また、オペレーションの進行中に指定されたコレクションが変更された場合の、このオペレーションの動作は定義されていません。

この実装は、指定されたコレクションに対して処理を繰り返し実行し、反復子により返される各要素をこのキューに順番に追加します。要素 (null 要素を含む) の追加中に実行時例外に遭遇する場合、関連付けられた例外のスロー時に要素の一部だけが追加に成功している可能性があります。

定義:
インタフェース Collection<E> 内の addAll
オーバーライド:
クラス AbstractCollection<E> 内の addAll
パラメータ:
c - キューに追加される要素を含むコレクション
戻り値:
この呼び出しの結果、このキューが変更された場合は true
例外:
ClassCastException - 指定されたコレクションの要素のクラスが原因で、このキューに追加できなかった場合
NullPointerException - 指定されたコレクション内に null 要素が含まれ、このキューが null 要素を許可しない場合。または指定されたコレクションが null の場合
IllegalArgumentException - 指定されたコレクションの要素のある特性が原因で、このキューに要素を追加できなかった場合。または指定されたコレクションがこのキューの場合
IllegalStateException - 挿入制限のため、この時点で一部の要素を追加できない場合
関連項目:
add(Object)

JavaTM Platform
Standard Ed. 6

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

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