E
- このコレクション内に保持される要素の型public class CopyOnWriteArraySet<E> extends AbstractSet<E> implements Serializable
CopyOnWriteArrayList
をすべてのオペレーションで使用する Set
です。このため、同じ基本プロパティーが共有されます。
使用例。 次のコード例では、copy-on-write セットを使用して、状態の更新時に特定のアクションを実行する一連の Handler オブジェクトを管理します。
class Handler { void handle(); ... }
class X {
private final CopyOnWriteArraySet<Handler> handlers
= new CopyOnWriteArraySet<Handler>();
public void addHandler(Handler h) { handlers.add(h); }
private long internalState;
private synchronized void changeState() { internalState = ...; }
public void update() {
changeState();
for (Handler handler : handlers)
handler.handle();
}
}
このクラスは、Java Collections Framework のメンバーです。
CopyOnWriteArrayList
, 直列化された形式コンストラクタと説明 |
---|
CopyOnWriteArraySet()
空のセットを作成します。
|
CopyOnWriteArraySet(Collection<? extends E> c)
指定されたコレクションの要素すべてを含むセットを作成します。
|
修飾子と型 | メソッドと説明 |
---|---|
boolean |
add(E e)
指定された要素がセットの要素として存在しない場合に、その要素をセットに追加します。
|
boolean |
addAll(Collection<? extends E> c)
指定されたコレクションのすべての要素について、その要素がこのセット内にない場合、セットに追加します。
|
void |
clear()
すべての要素をセットから削除します。
|
boolean |
contains(Object o)
指定された要素がセットに含まれている場合に true を返します。
|
boolean |
containsAll(Collection<?> c)
指定されたコレクションのすべての要素がこのセットに含まれている場合に true を返します。
|
boolean |
equals(Object o)
指定されたオブジェクトがセットと同じかどうかを比較します。
|
boolean |
isEmpty()
このセットに要素が 1 つも含まれていない場合に true を返します。
|
Iterator<E> |
iterator()
このセットに含まれる各要素についてのイテレータを、これらの要素が追加された順序で返します。
|
boolean |
remove(Object o)
指定された要素がこのセットに存在する場合に、要素をセットから削除します。
|
boolean |
removeAll(Collection<?> c)
セットから、指定されたコレクション内に保持されているすべての要素を削除します。
|
boolean |
retainAll(Collection<?> c)
指定されたコレクション内に保持されている、セット内の要素だけを保持します。
|
int |
size()
このセット中の要素の数を返します。
|
Object[] |
toArray()
セット内のすべての要素が格納されている配列を返します。
|
<T> T[] |
toArray(T[] a)
セット内のすべての要素を格納している配列を返します。返される配列の実行時の型は、指定された配列の型になります。
|
hashCode
toString
public CopyOnWriteArraySet()
public CopyOnWriteArraySet(Collection<? extends E> c)
c
- 初期状態で含む要素のコレクションNullPointerException
- 指定されたコレクションが null である場合public int size()
size
、インタフェース: Collection<E>
size
、インタフェース: Set<E>
size
、クラス: AbstractCollection<E>
public boolean isEmpty()
isEmpty
、インタフェース: Collection<E>
isEmpty
、インタフェース: Set<E>
isEmpty
、クラス: AbstractCollection<E>
public boolean contains(Object o)
contains
、インタフェース: Collection<E>
contains
、インタフェース: Set<E>
contains
、クラス: AbstractCollection<E>
o
- このセット内にあるかどうかが判定される要素public Object[] toArray()
返される配列への参照をセットが維持しないという点で、この配列は安全です。つまり、このメソッドは、セットが配列に連動している場合でも新しい配列を割り当てます。このため、呼び出し側は、返された配列を自由に変更できます。
このメソッドは、配列ベースの API とコレクションベースの API の間の橋渡し役として機能します。
toArray
、インタフェース: Collection<E>
toArray
、インタフェース: Set<E>
toArray
、クラス: AbstractCollection<E>
public <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>
toArray
、インタフェース: Set<E>
toArray
、クラス: AbstractCollection<E>
a
- 配列が十分な大きさを持つ場合は、このセットの要素の格納先の配列。配列のサイズが十分でない場合は、同じ実行時の型で新しい配列が格納用として割り当てられる。ArrayStoreException
- 指定された配列の実行時の型が、このセット内のすべての要素の実行時の型のスーパータイプでない場合NullPointerException
- 指定された配列が null である場合public void clear()
clear
、インタフェース: Collection<E>
clear
、インタフェース: Set<E>
clear
、クラス: AbstractCollection<E>
public boolean remove(Object o)
remove
、インタフェース: Collection<E>
remove
、インタフェース: Set<E>
remove
、クラス: AbstractCollection<E>
o
- このセットから削除されるオブジェクト (そのオブジェクトが存在する場合)public boolean add(E e)
add
、インタフェース: Collection<E>
add
、インタフェース: Set<E>
add
、クラス: AbstractCollection<E>
e
- このセットに追加される要素public boolean containsAll(Collection<?> c)
containsAll
、インタフェース: Collection<E>
containsAll
、インタフェース: Set<E>
containsAll
、クラス: AbstractCollection<E>
c
- このセットに含まれているかどうかがチェックされるコレクションNullPointerException
- 指定されたコレクションが null である場合contains(Object)
public boolean addAll(Collection<? extends E> c)
addAll
、インタフェース: Collection<E>
addAll
、インタフェース: Set<E>
addAll
、クラス: AbstractCollection<E>
c
- このセットに追加される要素を含むコレクションNullPointerException
- 指定されたコレクションが null である場合add(Object)
public boolean removeAll(Collection<?> c)
removeAll
、インタフェース: Collection<E>
removeAll
、インタフェース: Set<E>
removeAll
、クラス: AbstractSet<E>
c
- このセットから削除される要素を含むコレクションClassCastException
- このセットのある要素のクラスが、指定されたコレクションと互換でない場合 (オプション)NullPointerException
- このセットに null 要素が含まれており、指定されたコレクションが null 要素を許可しない場合 (オプション)、または指定されたコレクションが null の場合remove(Object)
public boolean retainAll(Collection<?> c)
retainAll
、インタフェース: Collection<E>
retainAll
、インタフェース: Set<E>
retainAll
、クラス: AbstractCollection<E>
c
- このセットで保持される要素を含むコレクションClassCastException
- このセットのある要素のクラスが、指定されたコレクションと互換でない場合 (オプション)NullPointerException
- このセットに null 要素が含まれており、指定されたコレクションが null 要素を許可しない場合 (オプション)、または指定されたコレクションが null の場合remove(Object)
public Iterator<E> iterator()
返されるイテレータは、イテレータの構築時のセット状態のスナップショットを提供します。イテレータのトラバーサル中に同期化は必要ありません。イテレータは、remove メソッドをサポートしません。
public boolean equals(Object o)
Set
でもあり、指定されたセットで iterator によって返された要素が、このセットでイテレータによって返された要素と同じである場合は true
を返します。つまり、この 2 つのイテレータは、同じ数の要素を返し、指定されたセットに対してイテレータによって返された要素 e1
ごとに、このセットでイテレータによって返された (e1==null ? e2==null : e1.equals(e2))
となる要素 e2
が存在する場合に同じ要素を返すと見なされます。equals
、インタフェース: Collection<E>
equals
、インタフェース: Set<E>
equals
、クラス: AbstractSet<E>
o
- このセットと等しいかどうかが比較されるオブジェクトtrue
Object.hashCode()
、HashMap
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.