JavaTM Platform
Standard Ed. 6

java.util
クラス AbstractSet<E>

java.lang.Object
  上位を拡張 java.util.AbstractCollection<E>
      上位を拡張 java.util.AbstractSet<E>
型パラメータ:
E - このセットによって維持される要素の型
すべての実装されたインタフェース:
Iterable<E>, Collection<E>, Set<E>
直系の既知のサブクラス:
ConcurrentSkipListSet, 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 - このセットと等しいかどうかが比較されるオブジェクト
戻り値:
指定されたオブジェクトがこのセットと同じ場合は true
関連項目:
Object.hashCode(), Hashtable

hashCode

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

この実装は、セットの各要素の hashCode メソッドを呼び出して、セットに対して繰り返し処理を行い、結果を加算していきます。

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

removeAll

public boolean removeAll(Collection<?> c)
このセットから、指定されたコレクションに含まれる要素をすべて削除します (任意のオペレーション)。指定されたコレクションもセットである場合、このオペレーションは、値が 2 つのセットの「非対称集合差分」になるようにセットを効率的に変更します。

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

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

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

JavaTM Platform
Standard Ed. 6

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

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