クラス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を拡張してコレクションを実装するプロセスと同じです。た し、このクラスのサブクラス内のすべてのメソッドおよびコンストラクタは、Setインタフェース(たとえば、addメソッドでは、オブジェクトの複数のインスタンスをセットに追 することはできません)によって課される追 の制約に従う必要があります。

このクラスは、AbstractCollectionクラスの実装をオーバーライドしないことに注意してく さい。 単に、equalsおよびhashCodeの実装を追 します。

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

導入されたバージョン:
1.2
関連 目:
  • コンストラクタの詳細

    • AbstractSet

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

    • equals

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

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

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

      public int hashCode()
      セットのハッシュ・コード値を返します。 セットのハッシュ・コードは、セット内の要 のハッシュ・コードの合計として定義されます。ここで、null要 のハッシュ・コードはゼロとして定義されます。 これにより、s1.equals(s2)は、Object.hashCode()の一般契約で要求されるように、s1およびs2の2つのセットに対してs1.hashCode()==s2.hashCode()が暗黙的に指定されます。

      この実装は、セットに対して反復処理を行い、セット内の各要 に対してhashCodeメソッドをコールして結果を追 します。

      定義:
      hashCode、インタフェースCollection<E>
      定義:
      hashCode、インタフェースSet<E>
      オーバーライド:
      hashCode、クラスObject
      戻り値:
      セットのハッシュ・コード値
      関連 目:
    • removeAll

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

      この実装では、それぞれに対してsizeメソッドを呼び出して、このセットと指定されたコレクションのどちらが小さいかを判断します。 このセットの要 の方が少ない 合、実装はこのセットのイテレータが返す に各要 が指定されたコレクション内に含まれるかどうかを確認します。 含まれている 合は、イテレータのremoveメソッドを使用してこのセットから削除されます。 指定したコレクションの要 が少ない 合、実装では、このセットのremoveメソッドを使用して、このセットからイテレータによって返される各要 を削除します。

      iteratorメソッドから返されたイテレータがremoveメソッドを実装していない 合、この実装はUnsupportedOperationExceptionをスローすることに注意してく さい。

      定義:
      removeAll、インタフェースCollection<E>
      定義:
      removeAll、インタフェースSet<E>
      オーバーライド:
      removeAll、クラスAbstractCollection<E>
      パラメータ:
      c - このセットから削除される要 を含むコレクション
      戻り値:
      呼出しの結果としてこのセットが変更された 合はtrue
      スロー:
      UnsupportedOperationException - removeAll操作がこのセットでサポートされていない 合
      ClassCastException - このセットのある要 のクラスが、指定されたコレクションと互換でない 合(オプション)
      NullPointerException - このセットにnull要 が含まれており、指定されたコレクションがnull要 を許可しない 合(オプション)、または指定されたコレクションがnullの 合
      関連 目: