JavaTM 2 Platform
Std. Ed. v1.3

java.util
クラス AbstractSet

java.lang.Object
  |
  +--java.util.AbstractCollection
        |
        +--java.util.AbstractSet
すべての実装インタフェース:
Collection, Set
直系の既知のサブクラス:
HashSet, TreeSet

public abstract class AbstractSet
extends AbstractCollection
implements Set

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

このクラスを拡張してセットを実装するプロセスは、AbstractCollection を拡張して Collection を実装するプロセスと同じです。ただし、このクラスのサブクラスにあるメソッドおよびコンストラクタのすべては、Set インタフェースによって課される追加の制限に従う必要があります。たとえば、add メソッドは、1 つのオブジェクトの複数のインスタンスをセットに追加する処理を許容すべきではありません。

このクラスは、AbstractCollection クラスによる実装を一切オーバーライドしません。単に、equalshashCode の実装を追加するだけです。

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

コンストラクタの概要
protected AbstractSet()
          唯一のコンストラクタです。
 
メソッドの概要
 boolean equals(Object o)
          指定されたオブジェクトとセットが等しいかどうかを比較します。
 int hashCode()
          このセットのハッシュコード値を返します。
 boolean removeAll(Collection c)
          このセットから、指定されたコレクションに含まれる要素をすべて削除します (任意のオペレーション)。
 
クラス java.util.AbstractCollection から継承したメソッド
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, toArray, toArray, toString
 
クラス java.lang.Object から継承したメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
インタフェース java.util.Set から継承したメソッド
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, toArray, toArray
 

コンストラクタの詳細

AbstractSet

protected AbstractSet()
唯一のコンストラクタです。サブクラスのコンストラクタによる呼び出しは、通常は暗黙的な呼び出しです。
メソッドの詳細

equals

public boolean equals(Object o)
指定されたオブジェクトとセットが等しいかどうかを比較します。指定されたオブジェクトがセットであり、2 つのセットのサイズが等しく、指定されたセットのすべてのメンバがこのセットに含まれている場合に true を返します。これにより、equals メソッドは Set インタフェースの異なる実装上で正しく動作することが保証されます。

この実装は、指定されたオブジェクトがこのセット自身であるかどうかを最初に調べます。このセットである場合、実装は true を返します。次に、指定されたオブジェクトについて、このセットと同じサイズのセットであるかどうかを調べます。指定されたオブジェクトがこのセットと同じサイズのセットではない場合は false を返します。指定されたオブジェクトがこのセットと同じサイズのセットである場合は、containsAll((Collection) o) の結果を返します。

定義:
インタフェース Set 内の equals
オーバーライド:
クラス Object 内の equals
パラメータ:
o - このセットと等しいかどうかが比較される Object
戻り値:
指定のオブジェクトがこのセットと同じ場合は true

hashCode

public int hashCode()
このセットのハッシュコード値を返します。セットのハッシュコードは、セットにある要素のハッシュコードの合計になるように定義されています。これにより、Object.hashCode の一般規約で要求されるとおりに、任意の 2 つのセット s1s2 について、s1.equals(s2) の場合 s1.hashCode()==s2.hashCode() になります。

この実装は、コレクションの各要素の hashCode メソッドを呼び出して、セットを列挙して次々調べ、結果を加算していきます。

定義:
インタフェース Set 内の hashCode
オーバーライド:
クラス Object 内の hashCode
戻り値:
セットのハッシュコード値

removeAll

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

この実装は、size メソッドを呼び出して、このセットおよび指定されたコレクションのどちらが小さいかを判別します。このセットに要素があまりない場合、実装でこのセットを繰り返し、各要素が反復子で返されることを確認して、指定のコレクションに含まれることを確認します。要素が含まれる場合は、反復子の remove メソッドを使ってこのセットから削除されます。指定のコレクションでは要素が少ない場合、指定されたコレクションで実装を繰り返し、このセットの remove メソッドを用いて、反復子が返した各要素をこのセットから削除します。

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

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

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.