- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- すべての実装されたインタフェース:
Iterable<E>
,Collection<E>
- 直系の既知のサブクラス:
AbstractList
,AbstractQueue
,AbstractSet
,ArrayDeque
,ConcurrentLinkedDeque
public abstract class AbstractCollection<E> extends Object implements Collection<E>
このクラスは、Collection
インタフェースのスケルトン実装を提供し、このインタフェースを実装するのに必要な作業量を最小限に抑えます。変更不可能なコレクションを実装するには、このクラスを拡張して、
iterator
メソッドおよびsize
メソッドの実装を提供します。 (iterator
メソッドが返すイテレータは、hasNext
およびnext
を実装している必要があります。)変更可能なコレクションを実装するには、上記に加えて、このクラスの
add
メソッドをオーバーライドすることと(オーバーライドしなかった場合は、UnsupportedOperationException
がスローされる)、iterator
メソッドで返されるイテレータがremove
メソッドを実装している必要があります。Collection
インタフェースの仕様で推奨されているように、通常は、引数なしのvoidコンストラクタ、および引数にCollection
をとるコンストラクタを提供してください。実装の詳細については、このクラスの抽象メソッド以外の各メソッドのドキュメントを参照してください。 より効率的な実装ができるコレクションの場合は、これらのメソッドをオーバーライドしてもかまいません。
このクラスは、Java Collections Frameworkのメンバーです。
- 導入されたバージョン:
- 1.2
- 関連項目:
Collection
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protected
AbstractCollection()
唯一のコンストラクタです。
-
メソッドのサマリー
修飾子と型 メソッド 説明 boolean
add(E e)
指定された要素がこのコレクションに格納されていることを保証します(オプションの操作)。boolean
addAll(Collection<? extends E> c)
指定されたコレクションのすべての要素をこのコレクションに追加します(オプションの操作)。void
clear()
このコレクションからすべての要素を削除します(オプションの操作)。boolean
contains(Object o)
指定された要素がコレクションに含まれている場合にtrue
を返します。boolean
containsAll(Collection<?> c)
指定されたコレクションのすべての要素がこのコレクション内にある場合はtrue
を返します。boolean
isEmpty()
このコレクションに要素がない場合にtrue
を返します。abstract Iterator<E>
iterator()
このコレクション中の要素に関係するイテレータを返します。boolean
remove(Object o)
指定された要素のインスタンスがこのコレクションにあれば、そのインスタンスをコレクションから1つ削除します(オプションの操作)。boolean
removeAll(Collection<?> c)
指定されたコレクションにも格納されているこのコレクションのすべての要素を削除します(オプションの操作)。boolean
retainAll(Collection<?> c)
このコレクションにおいて、指定されたコレクションに格納されている要素だけを保持します(オプションの操作)。Object[]
toArray()
このコレクションの要素がすべて格納されている配列を返します。<T> T[]
toArray(T[] a)
このコレクション内のすべての要素を保持する配列を返します。返される配列の実行時の型は、指定された配列の型です。String
toString()
このコレクションの文字列表現を返します。-
クラス java.lang.Objectで宣言されたメソッド
clone、equals、finalize、getClass、hashCode、notify、notifyAll、wait、wait、wait
-
インタフェース java.util.Collectionで宣言されたメソッド
equals, hashCode, parallelStream, removeIf, size, spliterator, stream, toArray
-
-
-
-
メソッドの詳細
-
isEmpty
public boolean isEmpty()
このコレクションに要素がない場合にtrue
を返します。- 定義:
isEmpty
、インタフェース:Collection<E>
- 実装要件:
- この実装は
size()== 0
を返します。 - 戻り値:
- このコレクションに要素が含まれていない場合は
true
-
contains
public boolean contains(Object o)
指定された要素がコレクションに含まれている場合にtrue
を返します。 より正式には、true
は、このコレクションに少なくとも1つの要素e
(Objects.equals(o, e)
など)が含まれている場合にのみ返されます。- 定義:
contains
、インタフェース:Collection<E>
- 実装要件:
- この実装はコレクションの各要素について、指定された要素と等しいかどうかを順に繰返し確認します。
- パラメータ:
o
- このコレクション内にあるかどうかが判定される要素- 戻り値:
- 指定された要素がこのコレクション内にある場合は
true
- 例外:
ClassCastException
- 指定された要素の型が、このコレクションと互換でない場合(オプション)NullPointerException
- 指定された要素がnullで、このコレクションがnull要素を許可しない場合(オプション)
-
toArray
public Object[] toArray()
このコレクションの要素がすべて格納されている配列を返します。 イテレータによって要素が返される順序をコレクションが保証する場合、このメソッドは同じ順序で要素を返さなければなりません。 返される配列「ランタイム・コンポーネント・タイプ」はObject
です。返される配列への参照をコレクションが維持しないという点で、この配列は安全です。 つまり、このメソッドは、コレクションが配列に連動している場合でも新しい配列を割り当てます。 このため、呼出し側は、返された配列を自由に変更できます。
- 定義:
toArray
、インタフェース:Collection<E>
- 実装要件:
- この実装は、インデックス
0
で始まり、同じ順序で、配列の連続した要素に格納されている、このコレクションのイテレータによって返されるすべての要素を含む配列を返します。 返される配列の長さは、コレクションが反復処理時の並行変更を許可する場合と同様に、このコレクションのサイズが反復処理時に変わる場合でも、イテレータによって返される要素の数と等しくなります。size
メソッドは、最適化のヒントとしてしか呼び出されません。イテレータが異なる数の要素を返す場合でも、正しい結果が返されます。このメソッドは、次と同等です。
List<E> list = new ArrayList<E>(size()); for (E e : this) list.add(e); return list.toArray();
- 戻り値:
- 「ランタイム・コンポーネント・タイプ」が
Object
の配列。このコレクションのすべての要素を含む
-
toArray
public <T> T[] toArray(T[] a)
このコレクション内のすべての要素を保持する配列を返します。返される配列の実行時の型は、指定された配列の型です。 コレクションが指定された配列に収まる場合は、その中に返されます。 そうでない場合は、指定された配列の実行時の型とコレクションのサイズを持つ新しい配列が割り当てられます。このコレクションが指定された配列に収まり、その配列にさらに余裕がある場合(つまり、配列がこのコレクションより多くの要素を持つ場合)、その配列内でコレクションの終端よりあとの要素は
null
に設定されます。 このコレクションにnull
要素がないことを呼出し側が知っている場合にだけ、この特性を利用してコレクションの長さを判断できます。イテレータによって要素が返される順序をコレクションが保証する場合、このメソッドは同じ順序で要素を返さなければなりません。
- 定義:
toArray
、インタフェース:Collection<E>
- 実装要件:
- この実装は、インデックス
0
で始まり、同じ順序で、配列の連続した要素に格納されている、このコレクションのイテレータによって返されるすべての要素を含む配列を返します。 イテレータによって返される要素数が大きすぎて指定された配列に収まらない場合、このコレクションのサイズが反復処理時に変わる場合でも、コレクションが反復処理時に並行変更を許可している場合と同様に、イテレータによって返される要素数と長さが等しい、新しく割り当てられた配列内の要素が返されます。size
メソッドは、最適化のヒントとしてしか呼び出されません。イテレータが異なる数の要素を返す場合でも、正しい結果が返されます。このメソッドは、次と同等です。
List<E> list = new ArrayList<E>(size()); for (E e : this) list.add(e); return list.toArray(a);
- 型パラメータ:
T
- コレクションを格納する配列のコンポーネント型- パラメータ:
a
- 配列が十分な大きさを持つ場合は、このコレクションの要素の格納先の配列。配列のサイズが十分でない場合は、同じ実行時の型で新しい配列が格納用として割り当てられる。- 戻り値:
- コレクションのすべての要素が格納されている配列
- 例外:
ArrayStoreException
- このコレクション内の要素の実行時の型が、指定された配列の「ランタイム・コンポーネント・タイプ」に代入可能でない場合NullPointerException
- 指定された配列がnullである場合
-
add
public boolean add(E e)
指定された要素がこのコレクションに格納されていることを保証します(オプションの操作)。 この呼出しの結果、コレクションが変更された場合はtrue
を返します。 このコレクションが要素の重複を許可せず、指定された要素がすでに含まれている場合はfalse
を返します。このオペレーションをサポートするコレクションでは、コレクションに追加できる要素について制限がある場合があります。 たとえば、コレクションによっては、
null
要素の追加が許可されないことや、追加される要素の型を制限することがあります。 追加される要素に関して制限がある場合は、そのCollectionクラスのドキュメントに明示すべきでしょう。その要素がすでにあるという以外の理由で特定の要素の追加を拒否する場合、コレクションは
false
を返すのではなく例外をスローする必要があります。 これにより、この呼出しが戻ったあとにコレクションが指定された要素を必ず格納するという不変性を保つことができます。- 定義:
add
、インタフェース:Collection<E>
- 実装要件:
- この実装は、常に
UnsupportedOperationException
をスローします。 - パラメータ:
e
- このコレクションにあるかどうかを調べる要素- 戻り値:
- 呼出しの結果としてこのコレクションが変更された場合は
true
- 例外:
UnsupportedOperationException
-add
オペレーションがこのコレクションでサポートされない場合ClassCastException
- 指定された要素のクラスが原因で、このコレクションにその要素を追加できない場合NullPointerException
- 指定された要素がnullで、このコレクションがnull要素を許可しない場合IllegalArgumentException
- 要素のあるプロパティが原因で、このコレクションに要素を追加できない場合IllegalStateException
- 挿入制限のため、この時点で要素を追加できない場合
-
remove
public boolean remove(Object o)
指定された要素のインスタンスがこのコレクションにあれば、そのインスタンスをコレクションから1つ削除します(オプションの操作)。 より正式には、Objects.equals(o, e)
のような要素e
を削除します(このコレクションに1つ以上の要素が含まれている場合)。 指定された要素がこのコレクションに含まれていた場合、つまり、呼出しの結果としてこのコレクションが変更された場合にtrue
を返します。- 定義:
remove
、インタフェース:Collection<E>
- 実装要件:
- この実装は、コレクションの内容を次々調べ、指定された要素を探します。 要素があれば、イテレータのremoveメソッドを使ってコレクションから要素を削除します。
このコレクションのiteratorメソッドが返すイテレータが
remove
メソッドを実装せず、指定されたオブジェクトがこのコレクション内にある場合、この実装はUnsupportedOperationException
をスローします。 - パラメータ:
o
- このコレクションから削除される要素(その要素が存在する場合)- 戻り値:
- この呼出しの結果として要素が削除された場合は
true
- 例外:
UnsupportedOperationException
-remove
オペレーションがこのコレクションでサポートされない場合ClassCastException
- 指定された要素の型が、このコレクションと互換でない場合(オプション)NullPointerException
- 指定された要素がnullで、このコレクションがnull要素を許可しない場合(オプション)
-
containsAll
public boolean containsAll(Collection<?> c)
指定されたコレクションのすべての要素がこのコレクション内にある場合はtrue
を返します。- 定義:
containsAll
、インタフェース:Collection<E>
- 実装要件:
- この実装は指定されたコレクションの内容を次々調べ、イテレータによって返された各要素について、このコレクションに含まれるかどうかを順番に確認します。 すべての要素がこのコレクションにある場合は
true
を返し、そうでない場合はfalse
を返します。 - パラメータ:
c
- このコレクションにあるかどうかを調べるコレクション- 戻り値:
- 指定されたコレクションのすべての要素がこのコレクション内にある場合は
true
- 例外:
ClassCastException
- 指定されたコレクションの1つ以上の要素の型が、このコレクションと互換でない場合(オプション)NullPointerException
- 指定されたコレクションに1つ以上のnull要素が含まれており、このコレクションがnull要素を許可しない場合(オプション)、または指定されたコレクションがnullの場合。- 関連項目:
contains(Object)
-
addAll
public boolean addAll(Collection<? extends E> c)
指定されたコレクションのすべての要素をこのコレクションに追加します(オプションの操作)。 オペレーションの進行中に、指定されたコレクションが変更された場合の、このオペレーションの動作は定義されていません。 したがって、指定されたコレクションがこのコレクション自身であり、このコレクションが空ではない場合、この呼出しの動作は定義されていません。- 定義:
addAll
、インタフェース:Collection<E>
- 実装要件:
- この実装は、指定されたコレクションに対して反復を行い、イテレータが返すオブジェクトをこのコレクションに順に追加していく操作を繰り返します。
指定されたコレクションが空でない場合は、
add
メソッドがオーバーライドされないかぎり、この実装はUnsupportedOperationException
をスローします。 - パラメータ:
c
- このコレクションに追加される要素を含むコレクション- 戻り値:
- 呼出しの結果としてこのコレクションが変更された場合は
true
- 例外:
UnsupportedOperationException
-addAll
オペレーションがこのコレクションでサポートされない場合ClassCastException
- 指定されたコレクションの要素のクラスが原因で、このコレクションにその要素を追加できない場合NullPointerException
- 指定されたコレクション内にnull要素が含まれ、このコレクションがnull要素を許可しない場合。または指定されたコレクションがnullの場合IllegalArgumentException
- 指定されたコレクションの要素のあるプロパティが原因で、このコレクションにその要素を追加できない場合IllegalStateException
- 挿入制限のため、この時点で一部の要素を追加できない場合- 関連項目:
add(Object)
-
removeAll
public boolean removeAll(Collection<?> c)
指定されたコレクションにも格納されているこのコレクションのすべての要素を削除します(オプションの操作)。 この呼出しの結果、このコレクションには指定されたコレクションと共通の要素はなくなります。- 定義:
removeAll
、インタフェース:Collection<E>
- 実装要件:
- この実装はこのコレクションの内容を次々調べ、イテレータによって返された各要素について、指定されたコレクションに含まれるかどうかを順番に確認します。 そのような要素があれば、イテレータの
remove
メソッドを使ってこのコレクションから削除します。iterator
メソッドで返されたイテレータがremove
メソッドを実装せず、指定されたコレクションに共通する要素が1つでもこのコレクション内にある場合は、この実装はUnsupportedOperationException
をスローします。 - パラメータ:
c
- このコレクションから削除される要素を含むコレクション- 戻り値:
- 呼出しの結果としてこのコレクションが変更された場合は
true
- 例外:
UnsupportedOperationException
-removeAll
メソッドがこのコレクションでサポートされない場合ClassCastException
- このコレクション内の1つ以上の要素の型が、指定されたコレクションと互換でない場合(オプション)NullPointerException
- このコレクションに1つ以上のnull要素が含まれており、指定されたコレクションがnull要素をサポートしない場合(オプション)、または指定されたコレクションがnullの場合- 関連項目:
remove(Object)
,contains(Object)
-
retainAll
public boolean retainAll(Collection<?> c)
このコレクションにおいて、指定されたコレクションに格納されている要素だけを保持します(オプションの操作)。 つまり、指定されたコレクションに格納されていないすべての要素をこのコレクションから削除します。- 定義:
retainAll
、インタフェース:Collection<E>
- 実装要件:
- この実装はこのコレクションの内容を次々調べ、イテレータによって返された各要素について、指定されたコレクションに含まれるかどうかを順番に確認します。 含まれない要素があれば、イテレータの
remove
メソッドを使ってこのコレクションから削除します。iterator
メソッドで返されたイテレータがremove
メソッドを実装せず、指定されたコレクションに含まれない要素が1つでもこのコレクション内にある場合は、この実装はUnsupportedOperationException
をスローします。 - パラメータ:
c
- このコレクションで保持される要素を含むコレクション- 戻り値:
- 呼出しの結果としてこのコレクションが変更された場合は
true
- 例外:
UnsupportedOperationException
-retainAll
オペレーションがこのコレクションでサポートされない場合ClassCastException
- このコレクション内の1つ以上の要素の型が、指定されたコレクションと互換でない場合(オプション)NullPointerException
- このコレクションに1つ以上のnull要素が含まれており、指定されたコレクションがnull要素を許可しない場合(オプション)、または指定されたコレクションがnullの場合- 関連項目:
remove(Object)
,contains(Object)
-
clear
public void clear()
このコレクションからすべての要素を削除します(オプションの操作)。 このメソッドが戻ると、コレクションは空になります。- 定義:
clear
、インタフェース:Collection<E>
- 実装要件:
- この実装はコレクションに対して、
Iterator.remove
オペレーションを使用して各要素を削除する操作を繰り返します。 ほとんどの実装では、このメソッドをオーバーライドした方がより効率的です。このコレクションの
iterator
メソッドで返されるイテレータがremove
メソッドを実装せず、このコレクションが空でない場合、この実装はUnsupportedOperationException
をスローします。 - 例外:
UnsupportedOperationException
-clear
オペレーションがこのコレクションでサポートされない場合
-
toString
public String toString()
このコレクションの文字列表現を返します。 文字列表現は、コレクションの要素をそのイテレータが返した順に角カッコ("[]"
)で囲んで示すリストです。 隣接する要素は、文字", "
(カンマと空白文字)によって区切られます。 要素は、String.valueOf(Object)
により文字列に変換されます。
-
-