JavaTM 2 Platform
Std. Ed. v1.3

java.util
インタフェース Set

すべてのスーパーインタフェース:
Collection
既知のサブインタフェースの一覧:
SortedSet
既知の実装クラスの一覧:
AbstractSet, HashSet

public interface Set
extends Collection

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

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

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

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

導入されたバージョン:
1.2
関連項目:
Collection, List, SortedSet, HashSet, TreeSet, AbstractSet, Collections.singleton(java.lang.Object), Collections.EMPTY_SET

メソッドの概要
 boolean add(Object o)
          指定された要素がセット内になかった場合、セットに追加します (任意のオペレーション)。
 boolean addAll(Collection c)
          指定されたコレクションのすべての要素について、その要素がこのセット内にない場合、セットに追加します (任意のオペレーション)。
 void clear()
          セットからすべての要素を削除します (任意のオペレーション)。
 boolean contains(Object o)
          指定された要素がセット内にある場合に true を返します。
 boolean containsAll(Collection c)
          指定されたコレクションのすべての要素がセット内にある場合に true を返します。
 boolean equals(Object o)
          指定されたオブジェクトがセットと同じかどうかを比較します。
 int hashCode()
          セットのハッシュコード値を返します。
 boolean isEmpty()
          セットが要素を 1 つも保持していない場合に true を返します。
 Iterator iterator()
          セット内の要素についての反復子を返します。
 boolean remove(Object o)
          指定された要素がセット内にあった場合、セットから削除します (任意のオペレーション)。
 boolean removeAll(Collection c)
          セットから、指定されたコレクション内にある要素をすべて削除します (任意のオペレーション)。
 boolean retainAll(Collection c)
          セット内の要素のうち、指定されたコレクション内にある要素だけを保持します (任意のオペレーション)。
 int size()
          セット内の要素数 (カーディナリティ) を返します。
 Object[] toArray()
          セット内のすべての要素が格納されている配列を返します。
 Object[] toArray(Object[] a)
          セット内のすべての要素が格納されている配列を返します。
 

メソッドの詳細

size

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

isEmpty

public boolean isEmpty()
セットが要素を 1 つも保持していない場合に true を返します。
定義:
インタフェース Collection 内の isEmpty
戻り値:
セットが要素を 1 つも保持していない場合は true

contains

public boolean contains(Object o)
指定された要素がセット内にある場合に true を返します。つまり、セット内に、(o==null ? e==null : o.equals(e)) に該当する要素 e がある場合にだけ true を返します。
定義:
インタフェース Collection 内の contains
パラメータ:
o - セットにあるかどうかを調べる要素
戻り値:
セットが、指定された要素を保持している場合は true

iterator

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

toArray

public Object[] toArray()
セット内のすべての要素が格納されている配列を返します。Collection.toArray() メソッドの一般規約に従います。
定義:
インタフェース Collection 内の toArray
戻り値:
セット内のすべての要素を保持している配列

toArray

public Object[] toArray(Object[] a)
セット内のすべての要素が格納されている配列を返します。この場合、実行時の型は指定された配列の型と同じになります。Collection.toArray(Object[]) メソッドの一般規約に従います。
定義:
インタフェース Collection 内の toArray
パラメータ:
a - セットの要素の格納先の配列。配列のサイズが十分でない場合は、同じ実行時の型で新しい配列が格納用として割り当てられる
戻り値:
セットの要素が格納されている配列
例外:
ArrayStoreException - a の実行時の型が、セット内の各要素の実行時の型のスーパータイプでない場合

add

public boolean add(Object o)
指定された要素がセット内になかった場合、セットに追加します (任意のオペレーション)。つまり、セット内に、(o==null ? e==null : o.equals(e)) に該当する要素 e がなかった場合は、指定された要素 o をセットに追加します。セット内にすでに指定された要素がある場合、呼び出しはセットを変更せずに false を返します。このため、コンストラクタについての制約との組み合わせにより、セットが重複要素を持たないことを保証します。

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

定義:
インタフェース Collection 内の add
パラメータ:
o - セットに追加される要素
戻り値:
セットが指定された要素を保持していなかった場合は true
例外:
UnsupportedOperationException - セットが add メソッドをサポートしていない場合
ClassCastException - 指定された要素のクラスのために、セットに要素を追加できない場合
IllegalArgumentException - この要素の一部の特性のために、このセットに追加できない場合

remove

public boolean remove(Object o)
指定された要素がセット内にあった場合、セットから削除します (任意のオペレーション)。つまり、セット内に、(o==null ? e==null : o.equals(e)) に該当する要素 e があった場合は、それを削除します。指定された要素がセット内にあった場合 (セットが呼び出しの結果として変更された場合) は、true を返します。呼び出しが復帰したあとは、セットは指定された要素を持っていません。
定義:
インタフェース Collection 内の remove
パラメータ:
o - セットにあれば削除されるオブジェクト
戻り値:
指定された要素がセット内にあった場合は true
例外:
UnsupportedOperationException - セットが remove メソッドをサポートしていない場合

containsAll

public boolean containsAll(Collection c)
指定されたコレクションのすべての要素がセット内にある場合に true を返します。指定されたコレクションもセットである場合、指定されたセットがこのセットの「サブセット」であれば、このメソッドは true を返します。
定義:
インタフェース Collection 内の containsAll
パラメータ:
c - このセットにあるかどうかを調べるコレクション
戻り値:
指定されたコレクションのすべての要素がセットに含まれている場合は true

addAll

public boolean addAll(Collection c)
指定されたコレクションのすべての要素について、その要素がこのセット内にない場合、セットに追加します (任意のオペレーション)。指定されたコレクションもセットである場合、addAll オペレーションは効率的にセットを変更して、その値が 2 つのセットの「和集合」になるようにします。指定されたコレクションがこのオペレーションの処理中に変更された場合、そのオペレーションの動作は保証されません。
定義:
インタフェース Collection 内の addAll
パラメータ:
c - 要素がセットに追加されるコレクション
戻り値:
この呼び出しの結果、このセットが変更された場合は true
例外:
UnsupportedOperationException - セットが addAll メソッドをサポートしていない場合
ClassCastException - 指定されたコレクションの要素のクラスが原因で、その要素をセットに追加できない場合
IllegalArgumentException - 指定されたコレクションの要素の特性が原因で、その要素をセットに追加できない場合
関連項目:
add(Object)

retainAll

public boolean retainAll(Collection c)
セット内の要素のうち、指定されたコレクション内にある要素だけを保持します (任意のオペレーション)。つまり、セットから、指定されたコレクション内にない要素をすべて削除します。指定されたコレクションもセットである場合、このオペレーションの結果、セットの値は 2 つのセットの「共通部分」になります。
定義:
インタフェース Collection 内の retainAll
パラメータ:
c - セットが保持する要素を定義するコレクション
戻り値:
この呼び出しの結果、このコレクションが変更された場合は true
例外:
UnsupportedOperationException - コレクションが retainAll メソッドをサポートしていない場合
関連項目:
remove(Object)

removeAll

public boolean removeAll(Collection c)
セットから、指定されたコレクション内にある要素をすべて削除します (任意のオペレーション)。指定されたコレクションもセットである場合、このオペレーションは、値が 2 つのセットの「非対称集合差分」になるようにセットを効率的に変更します。
定義:
インタフェース Collection 内の removeAll
パラメータ:
c - どの要素がセットから削除されるかを定義するコレクション
戻り値:
この呼び出しの結果、このセットが変更された場合は true
例外:
UnsupportedOperationException - このコレクションが removeAll メソッドをサポートしない場合
関連項目:
remove(Object)

clear

public void clear()
セットからすべての要素を削除します (任意のオペレーション)。この呼び出しが例外をスローしないかぎり、セットはこの呼び出しが復帰したあとに空になります。
定義:
インタフェース Collection 内の clear
例外:
UnsupportedOperationException - セットが clear メソッドをサポートしていない場合

equals

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

hashCode

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

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.