Foundation 1.1.2

java.util
クラス AbstractCollection

java.lang.Object
  上位を拡張 java.util.AbstractCollection
すべての実装されたインタフェース:
Collection
直系の既知のサブクラス:
AbstractList, AbstractSet

public abstract class AbstractCollection
extends Object
implements Collection

このクラスは、Collection インタフェースのスケルトン実装を提供し、このインタフェースを実装するのに必要な作業量を最小限に抑えます。

変更不可能なコレクションを実装するには、このクラスを拡張して、iterator メソッドおよび size メソッドの実装を提供します。iterator メソッドが返す反復子は、hasNext および next を実装している必要があります。

変更可能なコレクションを実装するには、上記に加えて、このクラスの add メソッドをオーバーライドすることと (オーバーライドしなかった場合は、UnsupportedOperationException がスローされる)、iterator メソッドで返される反復子が remove メソッドを実装している必要があります。

Collection インタフェースの仕様で推奨されているように、通常は、引数なしの void コンストラクタ、および引数に Collection をとるコンストラクタを提供してください。

実装の詳細については、このクラスの abstract メソッド以外の各メソッドのドキュメントを参照してください。より効率的な実装ができるコレクションの場合は、これらのメソッドをオーバーライドしてもかまいません。

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

導入されたバージョン:
1.2
関連項目:
Collection

コンストラクタの概要
protected AbstractCollection()
          唯一のコンストラクタです。
 
メソッドの概要
 boolean add(Object o)
          指定された要素がこのコレクションに格納されていることを保証します (任意のオペレーション)。
 boolean addAll(Collection c)
          指定されたコレクションのすべての要素をこのコレクションに追加します (任意のオペレーション)。
 void clear()
          このコレクションからすべての要素を削除します (任意のオペレーション)。
 boolean contains(Object o)
          コレクションに指定された要素がある場合に true を返します。
 boolean containsAll(Collection c)
          このコレクション内に、指定されたコレクションのすべての要素がある場合に true を返します。
 boolean isEmpty()
          コレクションに要素がない場合に true を返します。
abstract  Iterator iterator()
          このコレクション中の要素に関係する反復子を返します。
 boolean remove(Object o)
          指定された要素のインスタンスがこのコレクションにあれば、そのインスタンスをコレクションから 1 つ削除します (任意のオペレーション)。
 boolean removeAll(Collection c)
          このコレクションから、指定されたコレクションに含まれる要素をすべて削除します (任意のオペレーション)。
 boolean retainAll(Collection c)
          このコレクションにおいて、指定されたコレクションに格納されている要素だけを保持します (任意のオペレーション)。
abstract  int size()
          このコレクション中の要素の数を返します。
 Object[] toArray()
          このコレクションの要素がすべて格納されている配列を返します。
 Object[] toArray(Object[] a)
          このコレクション内のすべての要素を保持する配列を返します。
 String toString()
          このコレクションの文字列表現を返します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
インタフェース java.util.Collection から継承されたメソッド
equals, hashCode
 

コンストラクタの詳細

AbstractCollection

protected AbstractCollection()
唯一のコンストラクタです。サブクラスのコンストラクタによる呼び出し用で、通常は暗黙的に呼び出されます。

メソッドの詳細

iterator

public abstract Iterator iterator()
このコレクション中の要素に関係する反復子を返します。

定義:
インタフェース Collection 内の iterator
戻り値:
このコレクション中の要素に関係する反復子を返します。

size

public abstract int size()
このコレクション中の要素の数を返します。このコレクションに Integer.MAX_VALUE より多くの要素がある場合は、Integer.MAX_VALUE を返します。

定義:
インタフェース Collection 内の size
戻り値:
コレクションの要素数

isEmpty

public boolean isEmpty()
コレクションに要素がない場合に true を返します。

この実装は size() == 0 の結果を返します。

定義:
インタフェース Collection 内の isEmpty
戻り値:
コレクションに要素がない場合は true

contains

public boolean contains(Object o)
コレクションに指定された要素がある場合に true を返します。つまり、このコレクションに (o==null ? e==null : o.equals(e)) を満たす要素 e が 1 つ以上含まれる場合にのみ、true を返します。

この実装はコレクションの各要素について、指定された要素と等しいかどうかを順に繰り返し確認します。

定義:
インタフェース Collection 内の contains
パラメータ:
o - このコレクションにあるかどうかを調べるオブジェクト
戻り値:
コレクションに指定された要素がある場合は true

toArray

public Object[] toArray()
このコレクションの要素がすべて格納されている配列を返します。反復子によって要素が返される順序をこのコレクションが保証する場合、このメソッドは同じ順序で要素を返さなければなりません。返される配列への参照をこのコレクションが維持しないという点で、この配列は安全です。つまり、このメソッドは、このコレクションが Array に連動している場合でも新しい配列を割り当てます。このため、呼び出し側は、返された配列を自由に変更できます。

この実装は、返される配列を割り当て、コレクションの各要素について繰り返します。つまり、各オブジェクト参照を配列の次の要素に格納するという処理を、第 0 要素から開始します。

定義:
インタフェース Collection 内の toArray
戻り値:
コレクションのすべての要素が格納されている配列

toArray

public Object[] toArray(Object[] a)
このコレクション内のすべての要素を保持する配列を返します。返される配列の実行時の型は、指定された配列の型です。コレクションが指定された配列に収まる場合は、その中に返されます。そうでない場合は、指定された配列の実行時の型とコレクションのサイズを持つ新しい配列が割り当てられます。

指定された配列にコレクションが収まり、その配列にさらに余分な領域がある場合、つまり配列にコレクションより多くの要素がある場合、配列内でコレクションの末尾に続く要素は null に設定されます。コレクションに null 要素が含まれていないことを呼び出し側が知っている場合にだけ、この特性を利用してコレクションの長さを判断できます。

反復子によって要素が返される順序をコレクションが保証する場合、このメソッドは同じ順序で要素を返さなければなりません。

この実装は、配列がコレクションの格納に十分な大きさであるかどうかを確認します。大きさが不十分である場合は、リフレクションを使用して適切なサイズおよび型の配列を新しく割り当てます。次に、コレクションに対して、第 0 要素から順に、各オブジェクト参照を配列の次の要素に格納する操作を繰り返します。配列がコレクションよりも大きい場合、コレクションの終端の後ろの最初の位置に null が格納されます。

定義:
インタフェース Collection 内の toArray
パラメータ:
a - コレクションの要素の格納先の配列。配列のサイズが十分でない場合は、同じ実行時の型で新しい配列が格納用として割り当てられる
戻り値:
コレクションの要素を含む配列
例外:
NullPointerException - 指定された配列が null である場合
ArrayStoreException - 指定された配列の実行時の型が、このコレクションにある各要素の、実行時の型のスーパータイプではない場合

add

public boolean add(Object o)
指定された要素がこのコレクションに格納されていることを保証します (任意のオペレーション)。この呼び出しの結果、コレクションが変更された場合は true を返します。このコレクションが要素の重複を許可せず、指定された要素がすでに含まれている場合は false を返します。このオペレーションをサポートするコレクションでは、コレクションに追加できる要素について制限がある場合があります。たとえば、コレクションによっては、null 要素の追加が許可されないことや、追加される要素の型を制限することがあります。追加される要素に関して制限がある場合は、その Collection クラスのドキュメントに明示すべきでしょう。

この実装は、常に UnsupportedOperationException をスローします。

定義:
インタフェース Collection 内の add
パラメータ:
o - コレクションにあるかどうかを調べる要素
戻り値:
この呼び出しの結果、コレクションが変更された場合は true
例外:
UnsupportedOperationException - このコレクションが add メソッドをサポートしていない場合
NullPointerException - このコレクションが null 要素を許容しないときに、指定された要素が null の場合
ClassCastException - 指定された要素のクラスが原因で、コレクションに要素を追加できない場合
IllegalArgumentException - この要素の特性が原因で、このコレクションに追加できない場合

remove

public boolean remove(Object o)
指定された要素のインスタンスがこのコレクションにあれば、そのインスタンスをコレクションから 1 つ削除します (任意のオペレーション)。つまり、コレクションに (o==null ? e==null : o.equals(e)) を満たす要素 e が 1 つ以上含まれている場合は、そのような要素を削除します。指定された要素がコレクションに含まれていた場合、つまり、呼び出しの結果としコレクションが変更された場合に true を返します。

この実装は、コレクションの内容を次々調べ、指定された要素を探します。要素があれば、反復子の remove メソッドを使ってコレクションから要素を削除します。

このコレクションの iterator メソッドが返す反復子が remove メソッドを実装せず、指定されたオブジェクトがこのコレクション内にある場合、この実装は UnsupportedOperationException をスローします。

定義:
インタフェース Collection 内の remove
パラメータ:
o - コレクションから削除される要素 (その要素がある場合)
戻り値:
コレクションに指定された要素がある場合は true
例外:
UnsupportedOperationException - このコレクションが remove メソッドをサポートしていない場合

containsAll

public boolean containsAll(Collection c)
このコレクション内に、指定されたコレクションのすべての要素がある場合に true を返します。

この実装は指定されたコレクションの内容を次々調べ、反復子によって返された各要素について、このコレクションに含まれるかどうかを順番に確認します。すべての要素がこのコレクションにある場合は true を返し、そうでない場合は false を返します。

定義:
インタフェース Collection 内の containsAll
パラメータ:
c - このコレクションにあるかどうかを調べるコレクション
戻り値:
指定されたコレクションのすべての要素がこのコレクション内にある場合は true
例外:
NullPointerException - 指定されたコレクションが null である場合
関連項目:
contains(Object)

addAll

public boolean addAll(Collection c)
指定されたコレクションのすべての要素をこのコレクションに追加します (任意のオペレーション)。オペレーションの進行中に、指定されたコレクションが変更された場合の、このオペレーションの動作は定義されていません。したがって、指定されたコレクションがこのコレクション自身であり、このコレクションが空ではない場合、この呼び出しの動作は定義されていません。

この実装は、指定されたコレクションに対して反復を行い、反復子が返すオブジェクトをこのコレクションに順に追加していく操作を繰り返します。

指定されたコレクションが空でない場合は、add メソッドがオーバーライドされないかぎり、この実装は UnsupportedOperationException をスローします。

定義:
インタフェース Collection 内の addAll
パラメータ:
c - 要素がこのコレクションに追加されるコレクション
戻り値:
呼び出しの結果、このコレクションが変更された場合は true
例外:
UnsupportedOperationException - このコレクションが addAll メソッドをサポートしない場合
NullPointerException - 指定されたコレクションが null である場合
関連項目:
add(Object)

removeAll

public boolean removeAll(Collection c)
このコレクションから、指定されたコレクションに含まれる要素をすべて削除します (任意のオペレーション)。

この実装はこのコレクションの内容を次々調べ、反復子によって返された各要素について、指定されたコレクションに含まれるかどうかを順番に確認します。そのような要素があれば、反復子の remove メソッドを使ってこのコレクションから削除します。

iterator メソッドで返された反復子が remove メソッドを実装せず、指定されたコレクションに共通する要素が 1 つでもこのコレクション内にある場合は、この実装は UnsupportedOperationException をスローします。

定義:
インタフェース Collection 内の removeAll
パラメータ:
c - コレクションから削除される要素
戻り値:
呼び出しの結果、このコレクションが変更された場合は true
例外:
UnsupportedOperationException - このコレクションが removeAll メソッドをサポートしない場合
NullPointerException - 指定されたコレクションが null である場合
関連項目:
remove(Object), contains(Object)

retainAll

public boolean retainAll(Collection c)
このコレクションにおいて、指定されたコレクションに格納されている要素だけを保持します (任意のオペレーション)。つまり、指定されたコレクションに格納されていないすべての要素をこのコレクションから削除します。

この実装はこのコレクションの内容を次々調べ、反復子によって返された各要素について、指定されたコレクションに含まれるかどうかを順番に確認します。含まれない要素があれば、反復子の remove メソッドを使ってこのコレクションから削除します。

iterator メソッドで返された反復子が remove メソッドを実装せず、指定されたコレクションに含まれない要素が 1 つでもこのコレクション内にある場合は、この実装は UnsupportedOperationException をスローします。

定義:
インタフェース Collection 内の retainAll
パラメータ:
c - コレクションで保持される要素
戻り値:
呼び出しの結果、このコレクションが変更された場合は true
例外:
UnsupportedOperationException - コレクションが retainAll メソッドをサポートしていない場合
NullPointerException - 指定されたコレクションが null である場合
関連項目:
remove(Object), contains(Object)

clear

public void clear()
このコレクションからすべての要素を削除します (任意のオペレーション)。この呼び出しが返ると、それが例外をスローしないかぎり、コレクションは空になります。

この実装はコレクションに対して、Iterator.remove オペレーションを使用して各要素を削除する操作を繰り返します。ほとんどの実装では、このメソッドをオーバーライドした方がより効率的です。

このコレクションの iterator メソッドで返される反復子が remove メソッドを実装せず、このコレクションが空でない場合、この実装は UnsupportedOperationException をスローします。

定義:
インタフェース Collection 内の clear
例外:
UnsupportedOperationException - このコレクションが clear メソッドをサポートしない場合

toString

public String toString()
このコレクションの文字列表現を返します。文字列表現は、コレクションの要素をその反復子が返した順に角括弧 ("[]") で囲んで示すリストです。隣接する要素は、文字 ", " (カンマと空白文字) によって区切られます。要素は、String.valueOf(Object) により文字列に変換されます。

この実装は空の文字列バッファーを作成し、最初に左角括弧を付加してから、コレクションの内容を次々調べて、各要素の文字列表現を順に付加していきます。各要素の後には、文字列 ", " が付加されます。ただし、最後の要素の後には、", " ではなく右角括弧が付加されます。最後に文字列バッファーから文字列を取得し、その文字列を返します。

オーバーライド:
クラス Object 内の toString
戻り値:
このコレクションの文字列表現

Foundation 1.1.2

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

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