Java プラットフォーム 1.2

java.util
インタフェース Set

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

public abstract interface Set
extends Collection

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

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

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

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

導入されたバージョン:
JDK1.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
戻り値:
セット内に指定された要素がある場合は 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 - Collection が removeAll メソッドをサポートしていない場合
関連項目:
remove(Object)

clear

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

equals

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

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)

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.