モジュール java.base
パッケージ java.util

インタフェースSet<E>

型パラメータ:
E - このセットで保持される要素の型
すべてのスーパー・インタフェース:
Collection<E>, Iterable<E>
既知のすべてのサブインタフェース:
EventSet, NavigableSet<E>, SortedSet<E>
既知のすべての実装クラス:
AbstractSet, ConcurrentHashMap.KeySetView, ConcurrentSkipListSet, CopyOnWriteArraySet, EnumSet, HashSet, JobStateReasons, LinkedHashSet, TreeSet

public interface Set<E>
extends Collection<E>
重複要素のないコレクションです。 すなわち、セットは、e1.equals(e2)であるe1e2の要素ペアは持たず、null要素を最大1つしか持ちません。 その名前が示すように、このインタフェースは、数学で言う集合の抽象化をモデル化します。

Setインタフェースは、Collectionインタフェースから継承した規定だけでなく、すべてのコンストラクタの規約、およびaddequalshashCodeの各メソッドの規約に追加の規定を適用します。 便宜上、ほかの継承メソッドの宣言もここに含まれます。 これらの宣言に付随する仕様はSetインタフェースに合わせて調整済みですが、追加規定は含まれていません。

コンストラクタについての追加規定として、すべてのコンストラクタは、重複要素のないセットを作成しなければなりません(上記を参照)。

ノート: 可変オブジェクトがセット要素として使用される場合は、細心のノートが必要です。 オブジェクトがセット内の要素であるときに、equalsの比較に影響を与える方法でオブジェクトの値が変更された場合、セットの動作は保証されません。 この禁止事項の特例により、セットがそれ自体を要素として持つことは許可されません。

セットの実装には、格納できる要素に制限があるものもあります。 たとえば、null要素を禁止する実装や、null要素の型に制限がある実装もあります。 不適格な要素を追加しようとすると、通常NullPointerExceptionまたはClassCastExceptionのような非チェック例外がスローされます。 不適格な要素を照会しようとすると、例外がスローされる場合や、ただfalseを返す場合もあります。前者の動作を実行する実装もあれば、後者の動作を実行する実装もあります。 もう少し一般的に言うと、セットへの挿入がされない不適当な要素を処理しようとすると、例外がスローされる場合や、処理が有効になる場合があります。 このインタフェースの仕様では、そうした例外は「任意」と記載されています。

変更不可能なセット

Set.ofおよびSet.copyOf静的ファクトリ・メソッドは、変更不可能なセットを作成する便利な方法を提供します。 これらのメソッドによって作成されたSetインスタンスには、次の特性があります:

  • 彼らはunmodifiableです。 要素を追加または削除することはできません。 Setで任意のmutatorメソッドを呼び出すと、常にUnsupportedOperationExceptionがスローされます。 ただし、含まれている要素自体が変更可能な場合は、Setが不整合に動作したり、内容が変更されたように見えることがあります。
  • それらはnull要素を許可しません。 null要素でそれらを作成しようとすると、NullPointerExceptionになります。
  • すべての要素が直列化可能な場合、これらは直列化可能です。
  • 彼らは作成時に重複する要素を拒否します。 静的ファクトリ・メソッドに渡された重複要素は、IllegalArgumentExceptionになります。
  • set要素の反復順序は不特定であり、変更される可能性があります。
  • 彼らはvalue-basedです。 呼び出し側は、返されたインスタンスのアイデンティティについては何も仮定しないでください。 ファクトリは、新しいインスタンスを作成したり既存のインスタンスを再利用することは自由です。 したがって、これらのインスタンス(参照平等(==)、アイデンティティ・ハッシュ・コード、および同期)でのアイデンティティ依存型操作は信頼性が低く、避ける必要があります。
  • それらは、「直列化されたフォーム」ページで指定されたとおりに直列化されます。

このインタフェースは、Java Collections Frameworkのメンバーです。

導入されたバージョン:
1.2
関連項目:
Collection, List, SortedSet, HashSet, TreeSet, AbstractSet, Collections.singleton(java.lang.Object), Collections.EMPTY_SET
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    boolean add​(E e)
    指定された要素がセット内になかった場合、セットに追加します(オプションの操作)。
    boolean addAll​(Collection<? extends E> c)
    指定されたコレクションのすべての要素について、その要素がこのセット内にない場合、セットに追加します(オプションの操作)。
    void clear()
    セットからすべての要素を削除します(オプションの操作)。
    boolean contains​(Object o)
    指定された要素がこのセットに含まれている場合にtrueを返します。
    boolean containsAll​(Collection<?> c)
    指定されたコレクションのすべての要素がこのセットに含まれている場合にtrueを返します。
    static <E> Set<E> copyOf​(Collection<? extends E> coll)
    指定されたCollectionの要素を含む「変更不可能なセット」を返します。
    boolean equals​(Object o)
    指定されたオブジェクトがセットと同じかどうかを比較します。
    int hashCode()
    セットのハッシュ・コード値を返します。
    boolean isEmpty()
    このセットに要素が1つも含まれていない場合にtrueを返します。
    Iterator<E> iterator()
    セット内の各要素についてのイテレータを返します。
    static <E> Set<E> of()
    ゼロ要素を含む変更不可能な集合を返します。
    static <E> Set<E> of​(E e1)
    1つの要素を含む変更不可能なセットを返します。
    static <E> Set<E> of​(E... elements)
    任意の数の要素を含む変更不可能な集合を返します。
    static <E> Set<E> of​(E e1, E e2)
    2つの要素を含む変更不可能なセットを返します。
    static <E> Set<E> of​(E e1, E e2, E e3)
    3つの要素を含む変更不可能な集合を返します。
    static <E> Set<E> of​(E e1, E e2, E e3, E e4)
    4つの要素を含む変更不可能な集合を返します。
    static <E> Set<E> of​(E e1, E e2, E e3, E e4, E e5)
    5つの要素を含む変更不可能なセットを返します。
    static <E> Set<E> of​(E e1, E e2, E e3, E e4, E e5, E e6)
    6つの要素を含む変更不可能な集合を返します。
    static <E> Set<E> of​(E e1, E e2, E e3, E e4, E e5, E e6, E e7)
    7つの要素を含む変更不可能な集合を返します。
    static <E> Set<E> of​(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8)
    8つの要素を含む変更不可能なセットを返します。
    static <E> Set<E> of​(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9)
    9つの要素を含む変更不可能な集合を返します。
    static <E> Set<E> of​(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9, E e10)
    10個の要素を含む変更不可能なセットを返します。
    boolean remove​(Object o)
    指定された要素がセット内にあった場合、セットから削除します(オプションの操作)。
    boolean removeAll​(Collection<?> c)
    このセットから、指定されたコレクションに含まれる要素をすべて削除します(オプションの操作)。
    boolean retainAll​(Collection<?> c)
    セット内の要素のうち、指定されたコレクション内にある要素だけを保持します(オプションの操作)。
    int size()
    セット内の要素数(そのカーディナリティ)を返します。
    default Spliterator<E> spliterator()
    このセット内の要素に対するSpliteratorを作成します。
    Object[] toArray()
    セット内のすべての要素が格納されている配列を返します。
    <T> T[] toArray​(T[] a)
    セット内のすべての要素を格納している配列を返します。返される配列の実行時の型は、指定された配列の型になります。

    インタフェース java.util.Collectionで宣言されたメソッド

    parallelStream, removeIf, stream, toArray

    インタフェース java.lang.Iterableで宣言されたメソッド

    forEach
  • メソッドの詳細

    • size

      int size()
      セット内の要素数(そのカーディナリティ)を返します。 このセットにInteger.MAX_VALUEより多くの要素がある場合は、Integer.MAX_VALUEを返します。
      定義:
      size、インタフェース: Collection<E>
      戻り値:
      セット内の要素数(そのカーディナリティ)
    • isEmpty

      boolean isEmpty()
      このセットに要素が1つも含まれていない場合にtrueを返します。
      定義:
      isEmpty、インタフェース: Collection<E>
      戻り値:
      セットに要素がない場合はtrue
    • contains

      boolean contains​(Object o)
      指定された要素がこのセットに含まれている場合にtrueを返します。 より正式には、このセットにObjects.equals(o, e)のような要素eが含まれている場合に限り、trueを返します。
      定義:
      contains、インタフェース: Collection<E>
      パラメータ:
      o - このセット内にあるかどうかが判定される要素
      戻り値:
      指定された要素がこのセットに含まれている場合はtrue
      例外:
      ClassCastException - 指定された要素の型が、このセットと互換でない場合(オプション)
      NullPointerException - 指定された要素がnullで、このセットがnull要素を許可しない場合(オプション)
    • iterator

      Iterator<E> iterator()
      セット内の各要素についてのイテレータを返します。 セットが順序を保証する特定クラスのインスタンスでないかぎり、要素は特定の順序では返されません。
      定義:
      iterator、インタフェース: Collection<E>
      定義:
      iterator、インタフェース: Iterable<E>
      戻り値:
      セットの要素のイテレータ
    • toArray

      Object[] toArray()
      セット内のすべての要素が格納されている配列を返します。 イテレータによって要素が返される順序をセットが保証する場合、このメソッドは同じ順序で要素を返さなければいけません。

      返される配列への参照をセットが維持しないという点で、この配列は安全です。 つまり、このメソッドは、セットが配列に連動している場合でも新しい配列を割り当てます。 このため、呼出し側は、返された配列を自由に変更できます。

      このメソッドは、配列ベースのAPIとコレクションベースのAPIの間の橋渡し役として機能します。

      定義:
      toArray、インタフェース: Collection<E>
      戻り値:
      セット内のすべての要素を保持している配列
    • toArray

      <T> T[] toArray​(T[] a)
      セット内のすべての要素を格納している配列を返します。返される配列の実行時の型は、指定された配列の型になります。 セットが指定された配列に収まる場合は、その中に返されます。 そうでない場合は、指定された配列の実行時の型とセットのサイズを持つ新しい配列が割り当てられます。

      このセットが指定された配列に収まり、その配列にさらに余裕がある場合(つまり、配列がセットより多くの要素を持つ場合)、その配列内でセットの終端よりあとの要素はnullに設定されます。 このセットにnull要素がないことを呼出し側が知っている場合にだけ、この特性を利用してこのセットの長さを判断できます。

      イテレータによって要素が返される順序をセットが保証する場合、このメソッドは同じ順序で要素を返さなければいけません。

      toArray()メソッドと同じように、このメソッドは、配列ベースのAPIとコレクションベースのAPIの間の橋渡し役として機能します。 さらに、このメソッドでは出力配列の実行時の型を正確に制御できるため、環境によっては割当ての手間を抑えるために使用できます。

      xが、文字列だけからなるセットであることがわかっていると仮定します。 次のコードを使うと、新しく割り当てられたStringの配列内にセットをダンプできます。

           String[] y = x.toArray(new String[0]);
      toArray(new Object[0])は、機能の点でtoArray()と同一です。

      定義:
      toArray、インタフェース: Collection<E>
      型パラメータ:
      T - コレクションを格納する配列のコンポーネント型
      パラメータ:
      a - 配列が十分な大きさを持つ場合は、このセットの要素の格納先の配列。配列のサイズが十分でない場合は、同じ実行時の型で新しい配列が格納用として割り当てられる。
      戻り値:
      セット内のすべての要素を保持している配列
      例外:
      ArrayStoreException - 指定された配列の実行時の型が、このセット内のすべての要素の実行時の型のスーパー・タイプでない場合
      NullPointerException - 指定された配列がnullである場合
    • add

      boolean add​(E e)
      指定された要素がセット内になかった場合、セットに追加します(オプションの操作)。 より正式には、Objects.equals(e, e2)のような要素e2がセットに含まれていない場合、指定された要素eをこのセットに追加します。 このセット内にすでにその要素が含まれている場合、この呼出しはセットを変更せずにfalseを返します。 このため、コンストラクタについての制約との組み合わせにより、セットが重複要素を持たないことを保証します。

      この規定は、セットがすべての要素を受け付ける必要があることを意味するわけではありません。セットは、nullを含む特定の要素の追加を拒否して例外をスローできます(Collection.addの仕様を参照)。 セットの各実装では、セットが持つことのできる要素についての制約を明記するようにしてください。

      定義:
      add、インタフェース: Collection<E>
      パラメータ:
      e - このセットに追加される要素
      戻り値:
      このセット内に、指定された要素がなかった場合はtrue
      例外:
      UnsupportedOperationException - addオペレーションがこのセットでサポートされない場合
      ClassCastException - 指定された要素のクラスが原因で、このセットにその要素を追加できない場合
      NullPointerException - 指定された要素がnullであり、このセットがnull要素を許可しない場合
      IllegalArgumentException - 指定された要素のあるプロパティが原因で、このセットにその要素を追加できない場合
    • remove

      boolean remove​(Object o)
      指定された要素がセット内にあった場合、セットから削除します(オプションの操作)。 より正式には、Objects.equals(o, e)(このセットにこのような要素が含まれている場合)のような要素eを削除します。 その要素がこのセットに含まれていた場合、つまり、呼出しの結果としてこのセットが変更された場合はtrueを返します。 呼出しが復帰したあとは、このセットはその要素を持っていません。
      定義:
      remove、インタフェース: Collection<E>
      パラメータ:
      o - このセットから削除されるオブジェクト(そのオブジェクトが存在する場合)
      戻り値:
      指定された要素がこのセットに含まれていた場合はtrue
      例外:
      ClassCastException - 指定された要素の型が、このセットと互換でない場合(オプション)
      NullPointerException - 指定された要素がnullで、このセットがnull要素を許可しない場合(オプション)
      UnsupportedOperationException - removeオペレーションがこのセットでサポートされない場合
    • containsAll

      boolean containsAll​(Collection<?> c)
      指定されたコレクションのすべての要素がこのセットに含まれている場合にtrueを返します。 指定されたコレクションもセットである場合、指定されたセットがこのセットのサブセットであれば、このメソッドはtrueを返します。
      定義:
      containsAll、インタフェース: Collection<E>
      パラメータ:
      c - このセットに含まれているかどうかがチェックされるコレクション
      戻り値:
      指定されたコレクションのすべての要素がこのセットに含まれている場合はtrue
      例外:
      ClassCastException - 指定されたコレクションの1つ以上の要素の型が、セットと互換でない場合(オプション)
      NullPointerException - 指定されたコレクションに1つ以上のnull要素が含まれており、このセットがnull要素を許可しない場合(オプション)、または指定されたコレクションがnullの場合
      関連項目:
      contains(Object)
    • addAll

      boolean addAll​(Collection<? extends E> c)
      指定されたコレクションのすべての要素について、その要素がこのセット内にない場合、セットに追加します(オプションの操作)。 指定されたコレクションもセットである場合、addAllオペレーションは、その値が2つのセットの和集合になるようにこのセットを効率的に変更します。 オペレーションの進行中に、指定されたコレクションが変更された場合の、このオペレーションの動作は定義されていません。
      定義:
      addAll、インタフェース: Collection<E>
      パラメータ:
      c - このセットに追加される要素を含むコレクション
      戻り値:
      呼出しの結果としてこのセットが変更された場合はtrue
      例外:
      UnsupportedOperationException - addAllオペレーションがこのセットでサポートされない場合
      ClassCastException - 指定されたコレクションの要素のクラスが原因で、このセットにその要素を追加できない場合
      NullPointerException - 指定されたコレクションに1つ以上のnull要素が含まれており、このセットがnull要素を許可しない場合、または指定されたコレクションがnullの場合
      IllegalArgumentException - 指定されたコレクションの要素のあるプロパティが原因で、このセットにその要素を追加できない場合
      関連項目:
      add(Object)
    • retainAll

      boolean retainAll​(Collection<?> c)
      セット内の要素のうち、指定されたコレクション内にある要素だけを保持します(オプションの操作)。 つまり、セットから、指定されたコレクション内にない要素をすべて削除します。 指定されたコレクションもセットである場合、このオペレーションは、その値が2つのセットの共通部分になるようにこのセットを効率的に変更します。
      定義:
      retainAll、インタフェース: Collection<E>
      パラメータ:
      c - このセットで保持される要素を含むコレクション
      戻り値:
      呼出しの結果としてこのセットが変更された場合はtrue
      例外:
      UnsupportedOperationException - retainAllオペレーションがこのセットでサポートされない場合
      ClassCastException - このセットのある要素のクラスが、指定されたコレクションと互換でない場合(オプション)
      NullPointerException - このセットにnull要素が含まれており、指定されたコレクションがnull要素を許可しない場合(オプション)、または指定されたコレクションがnullの場合
      関連項目:
      remove(Object)
    • removeAll

      boolean removeAll​(Collection<?> c)
      このセットから、指定されたコレクションに含まれる要素をすべて削除します(オプションの操作)。 指定されたコレクションもセットである場合、このオペレーションは、その値が2つのセットの非対称集合差分になるようにこのセットを効率的に変更します。
      定義:
      removeAll、インタフェース: Collection<E>
      パラメータ:
      c - このセットから削除される要素を含むコレクション
      戻り値:
      呼出しの結果としてこのセットが変更された場合はtrue
      例外:
      UnsupportedOperationException - removeAllオペレーションがこのセットでサポートされない場合
      ClassCastException - このセットのある要素のクラスが、指定されたコレクションと互換でない場合(オプション)
      NullPointerException - このセットにnull要素が含まれており、指定されたコレクションがnull要素を許可しない場合(オプション)、または指定されたコレクションがnullの場合
      関連項目:
      remove(Object), contains(Object)
    • clear

      void clear()
      セットからすべての要素を削除します(オプションの操作)。 この呼出しが戻ると、セットは空になります。
      定義:
      clear、インタフェース: Collection<E>
      例外:
      UnsupportedOperationException - clearメソッドがこのセットでサポートされない場合
    • equals

      boolean equals​(Object o)
      指定されたオブジェクトがセットと同じかどうかを比較します。 指定されたオブジェクトもセットで、2つのセットが同じサイズを持ち、指定されたセットのすべてのメンバーがこのセットに含まれる場合(つまり、このセットのすべてのメンバーが指定されたセットに含まれる場合)にtrueを返します。 この定義により、equalsメソッドがセット・インタフェースのさまざまな実装で適切に動作することが保証されます。
      定義:
      equals、インタフェース: Collection<E>
      オーバーライド:
      equals 、クラス:  Object
      パラメータ:
      o - このセットと等しいかどうかが比較されるオブジェクト
      戻り値:
      指定されたオブジェクトがこのセットに等しい場合はtrue
      関連項目:
      Object.hashCode()HashMap
    • hashCode

      int hashCode()
      セットのハッシュ・コード値を返します。 セットのハッシュ・コードは、そのセット内の要素のハッシュ・コードの合計になるように定義されています。ただし、null要素のハッシュ・コードはゼロになるように定義されています。 これにより、Object.hashCode()の一般規約によって要求されるように、任意の2つのセットs1s2s1.equals(s2)であれば、s1.hashCode()==s2.hashCode()となることが保証されます。
      定義:
      hashCode、インタフェース: Collection<E>
      オーバーライド:
      hashCode 、クラス:  Object
      戻り値:
      セットのハッシュ・コード値
      関連項目:
      Object.equals(Object), equals(Object)
    • spliterator

      default Spliterator<E> spliterator()
      このセット内の要素に対するSpliteratorを作成します。

      SpliteratorSpliterator.DISTINCTを報告します。 実装は、追加の特性値の報告をドキュメント化する必要があります。

      定義:
      spliterator、インタフェース: Collection<E>
      定義:
      spliterator、インタフェース: Iterable<E>
      実装要件:
      デフォルト実装は、セットのIteratorから遅延バインディング・スプリッテレータを作成します。 スプリッテレータは、セットのイテレータのフェイルファスト・プロパティを継承します。

      作成されたSpliteratorは、追加でSpliterator.SIZEDを報告します。

      実装上のノート:
      作成されたSpliteratorはさらにSpliterator.SUBSIZEDも報告します。
      戻り値:
      このセット内の要素に対するSpliterator
      導入されたバージョン:
      1.8
    • of

      static <E> Set<E> of()
      ゼロ要素を含む変更不可能な集合を返します。 詳細については、「変更不可能なセット」を参照してください。
      型パラメータ:
      E - Set要素型
      戻り値:
      空のSet
      導入されたバージョン:
      9
    • of

      static <E> Set<E> of​(E e1)
      1つの要素を含む変更不可能なセットを返します。 詳細については、「変更不可能なセット」を参照してください。
      型パラメータ:
      E - Set要素型
      パラメータ:
      e1 - 単一要素
      戻り値:
      指定された要素を含むSet
      例外:
      NullPointerException - 要素がnullの場合
      導入されたバージョン:
      9
    • of

      static <E> Set<E> of​(E e1, E e2)
      2つの要素を含む変更不可能なセットを返します。 詳細については、「変更不可能なセット」を参照してください。
      型パラメータ:
      E - Set要素型
      パラメータ:
      e1 - 最初の要素
      e2 - 第2要素
      戻り値:
      指定された要素を含むSet
      例外:
      IllegalArgumentException - 要素が重複している場合
      NullPointerException - 要素がnullの場合
      導入されたバージョン:
      9
    • of

      static <E> Set<E> of​(E e1, E e2, E e3)
      3つの要素を含む変更不可能な集合を返します。 詳細については、「変更不可能なセット」を参照してください。
      型パラメータ:
      E - Set要素型
      パラメータ:
      e1 - 最初の要素
      e2 - 第2要素
      e3 - 第3要素
      戻り値:
      指定された要素を含むSet
      例外:
      IllegalArgumentException - 重複する要素がある場合
      NullPointerException - 要素がnullの場合
      導入されたバージョン:
      9
    • of

      static <E> Set<E> of​(E e1, E e2, E e3, E e4)
      4つの要素を含む変更不可能な集合を返します。 詳細については、「変更不可能なセット」を参照してください。
      型パラメータ:
      E - Set要素型
      パラメータ:
      e1 - 最初の要素
      e2 - 第2要素
      e3 - 第3要素
      e4 - 第4要素
      戻り値:
      指定された要素を含むSet
      例外:
      IllegalArgumentException - 重複する要素がある場合
      NullPointerException - 要素がnullの場合
      導入されたバージョン:
      9
    • of

      static <E> Set<E> of​(E e1, E e2, E e3, E e4, E e5)
      5つの要素を含む変更不可能なセットを返します。 詳細については、「変更不可能なセット」を参照してください。
      型パラメータ:
      E - Set要素型
      パラメータ:
      e1 - 最初の要素
      e2 - 第2要素
      e3 - 第3要素
      e4 - 第4要素
      e5 - 第5要素
      戻り値:
      指定された要素を含むSet
      例外:
      IllegalArgumentException - 重複する要素がある場合
      NullPointerException - 要素がnullの場合
      導入されたバージョン:
      9
    • of

      static <E> Set<E> of​(E e1, E e2, E e3, E e4, E e5, E e6)
      6つの要素を含む変更不可能な集合を返します。 詳細については、「変更不可能なセット」を参照してください。
      型パラメータ:
      E - Set要素型
      パラメータ:
      e1 - 最初の要素
      e2 - 第2要素
      e3 - 第3要素
      e4 - 第4要素
      e5 - 第5要素
      e6 - 第6要素
      戻り値:
      指定された要素を含むSet
      例外:
      IllegalArgumentException - 重複する要素がある場合
      NullPointerException - 要素がnullの場合
      導入されたバージョン:
      9
    • of

      static <E> Set<E> of​(E e1, E e2, E e3, E e4, E e5, E e6, E e7)
      7つの要素を含む変更不可能な集合を返します。 詳細については、「変更不可能なセット」を参照してください。
      型パラメータ:
      E - Set要素型
      パラメータ:
      e1 - 最初の要素
      e2 - 第2要素
      e3 - 第3要素
      e4 - 第4要素
      e5 - 第5要素
      e6 - 第6要素
      e7 - 第7要素
      戻り値:
      指定された要素を含むSet
      例外:
      IllegalArgumentException - 重複する要素がある場合
      NullPointerException - 要素がnullの場合
      導入されたバージョン:
      9
    • of

      static <E> Set<E> of​(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8)
      8つの要素を含む変更不可能なセットを返します。 詳細については、「変更不可能なセット」を参照してください。
      型パラメータ:
      E - Set要素型
      パラメータ:
      e1 - 最初の要素
      e2 - 第2要素
      e3 - 第3要素
      e4 - 第4要素
      e5 - 第5要素
      e6 - 第6要素
      e7 - 第7要素
      e8 - 第8要素
      戻り値:
      指定された要素を含むSet
      例外:
      IllegalArgumentException - 重複する要素がある場合
      NullPointerException - 要素がnullの場合
      導入されたバージョン:
      9
    • of

      static <E> Set<E> of​(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9)
      9つの要素を含む変更不可能な集合を返します。 詳細については、「変更不可能なセット」を参照してください。
      型パラメータ:
      E - Set要素型
      パラメータ:
      e1 - 最初の要素
      e2 - 第2要素
      e3 - 第3要素
      e4 - 第4要素
      e5 - 第5要素
      e6 - 第6要素
      e7 - 第7要素
      e8 - 第8要素
      e9 - 第9要素
      戻り値:
      指定された要素を含むSet
      例外:
      IllegalArgumentException - 重複する要素がある場合
      NullPointerException - 要素がnullの場合
      導入されたバージョン:
      9
    • of

      static <E> Set<E> of​(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9, E e10)
      10個の要素を含む変更不可能なセットを返します。 詳細については、「変更不可能なセット」を参照してください。
      型パラメータ:
      E - Set要素型
      パラメータ:
      e1 - 最初の要素
      e2 - 第2要素
      e3 - 第3要素
      e4 - 第4要素
      e5 - 第5要素
      e6 - 第6要素
      e7 - 第7要素
      e8 - 第8要素
      e9 - 第9要素
      e10 - 10番目の要素
      戻り値:
      指定された要素を含むSet
      例外:
      IllegalArgumentException - 重複する要素がある場合
      NullPointerException - 要素がnullの場合
      導入されたバージョン:
      9
    • of

      @SafeVarargsstatic <E> Set<E> of​(E... elements)
      任意の数の要素を含む変更不可能な集合を返します。 詳細については、「変更不可能なセット」を参照してください。
      APIのノート:
      このメソッドは、引数として単一の配列も受け入れます。 結果セットの要素型は配列のコンポーネント型になり、セットのサイズは配列の長さに等しくなります。 アレイである単一の要素を持つセットを作成するには、次の手順を実行します:
      
           String[] array = ... ;
           Set<String[]> list = Set.<String[]>of(array);
       
      これにより、代わりにSet.of(E)メソッドが呼び出されます。
      型パラメータ:
      E - Set要素型
      パラメータ:
      elements - セットに含まれる要素
      戻り値:
      指定された要素を含むSet
      例外:
      IllegalArgumentException - 重複する要素がある場合
      NullPointerException - 要素がnullの場合、または配列がnullの場合
      導入されたバージョン:
      9
    • copyOf

      static <E> Set<E> copyOf​(Collection<? extends E> coll)
      指定されたCollectionの要素を含む「変更不可能なセット」を返します。 指定されたCollectionはnullであってはならず、null要素を含んではいけません。 指定されたCollectionに重複要素が含まれている場合、重複要素の任意の要素が保持されます。 指定されたCollectionがその後に変更された場合、返されたSetはそのような変更を反映しません。
      実装上のノート:
      指定されたCollectionが「変更不可能なセット」の場合、copyOfの呼び出しは一般にコピーを作成しません。
      型パラメータ:
      E - Set要素型
      パラメータ:
      coll - 要素が描画されるCollectionはnullでなくてはなりません
      戻り値:
      与えられたCollectionの要素を含むSet
      例外:
      NullPointerException - collがnullの場合、またはnullが含まれている場合
      導入されたバージョン:
      10