JavaTM 2 Platform
Std. Ed. v1.3

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

導入されたバージョン:
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 つ以上あれば、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
関連項目:
contains(Object)

addAll

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

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

add メソッドがオーバーライドされない限り、この実装は UnsupportedOperationException をスローします。

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

removeAll

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

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

iterator メソッドで返された反復子が remove メソッドを実装していない場合、この実装は UnsupportedOperationException をスローします。

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

retainAll

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

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

iterator メソッドで返される反復子が remove メソッドを実装していない場合、この実装は UnsupportedOperationException をスローします。

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

clear

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

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

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

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

toString

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

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

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

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.