java.util
クラス AbstractSet
java.lang.Object
|
+--java.util.AbstractCollection
|
+--java.util.AbstractSet
- 直接の既知のサブクラス:
- HashSet, TreeSet
- public abstract class AbstractSet
- extends AbstractCollection
- implements Set
このクラスは、Set インタフェースのスケルトン実装を提供し、このインタフェースを実装するのに必要な作業量を最小限に抑えます。
このクラスを拡張してセットを実装するプロセスは、AbstractCollection を拡張して Collection を実装するプロセスと同じです。ただし、このクラスのサブクラスにあるメソッドおよびコンストラクタのすべては、Set インタフェースによって課される追加の制限に従う必要があります。たとえば、add メソッドは、1 つのオブジェクトの複数のインスタンスをセットに追加する処理を許容してはいけません。
このクラスは、AbstractCollection クラスによる実装の一切をオーバーライドしません。単に、equals と hashCode の実装を追加するだけです。
- 導入されたバージョン:
- JDK1.2
- 関連項目:
Collection
,
AbstractCollection
,
Set
クラス java.util.AbstractCollection から継承したメソッド |
add,
addAll,
clear,
contains,
containsAll,
isEmpty,
iterator,
remove,
removeAll,
retainAll,
size,
toArray,
toArray,
toString |
AbstractSet
protected AbstractSet()
- 唯一のコンストラクタです。サブクラスのコンストラクタによる呼び出しは、通常は暗黙的な呼び出しです。
equals
public boolean equals(Object o)
- 指定されたオブジェクトとセットが等しいかどうかを比較します。指定されたオブジェクトがセットであり、2 つのセットのサイズが等しく、指定されたセットのすべてのメンバがこのセットに含まれている場合に true を返します。これにより、equals メソッドは Set インタフェースの異なる実装上で正しく動作することが保証されます。
この実装は、指定されたオブジェクトがこのセット自身であるかどうかを最初に調べます。このセットである場合、実装は true を返します。次に、指定されたオブジェクトについて、このセットと同じサイズのセットであるかどうかを調べます。指定されたオブジェクトがこのセットと同じサイズのセットではない場合は false を返します。指定されたオブジェクトがこのセットと同じサイズのセットである場合は、containsAll((Collection) o) の結果を返します。
- 定義:
- インタフェース Set 内の equals
- パラメータ:
o
- このセットと等しいかどうか比較される Object- 戻り値:
- 指定されたオブジェクトがこのセットに等しい場合は true
- オーバーライド:
- クラス Object 内の equals
hashCode
public int hashCode()
- このセットのハッシュコード値を返します。セットのハッシュコードは、セットにある要素のハッシュコードの合計になるように定義されています。これにより、Object.hashCode の一般規約で要求されるとおりに、任意の 2 つのセット s1 と s2 について、s1.equals(s2) の場合 s1.hashCode()==s2.hashCode() になります。
この実装は、コレクションの各要素の hashCode メソッドを呼び出して、セットを列挙して次々調べ、結果を加算していきます。
- 定義:
- インタフェース Set 内の hashCode
- 戻り値:
- このセットのハッシュコード値
- オーバーライド:
- クラス Object 内の hashCode
バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.