JavaTM 2 Platform
Standard Ed. 5.0

java.util
クラス AbstractSet<E>

java.lang.Object
  上位を拡張 java.util.AbstractCollection<E>
      上位を拡張 java.util.AbstractSet<E>
すべての実装されたインタフェース:
Iterable<E>, Collection<E>, Set<E>
直系の既知のサブクラス:
CopyOnWriteArraySet, EnumSet, HashSet, TreeSet

public abstract class AbstractSet<E>
extends AbstractCollection<E>
implements Set<E>

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

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

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

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

導入されたバージョン:
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) の結果を返します。

定義:
インタフェース Collection<E> 内の equals
定義:
インタフェース Set<E> 内の equals
オーバーライド:
クラス Object 内の equals
パラメータ:
o - このセットと等しいかどうかが比較される Object
戻り値:
指定されたオブジェクトがこのセットと同じ場合は true
関連項目:
Object.hashCode(), Hashtable

hashCode

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

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

定義:
インタフェース Collection<E> 内の hashCode
定義:
インタフェース Set<E> 内の hashCode
オーバーライド:
クラス Object 内の hashCode
戻り値:
セットのハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

removeAll

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

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

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

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

JavaTM 2 Platform
Standard Ed. 5.0

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

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