JavaTM 2 Platform
Standard Ed. 6

java.util.concurrent
类 CopyOnWriteArraySet<E>

java.lang.Object
  继承者 java.util.AbstractCollection<E>
      继承者 java.util.AbstractSet<E>
          继承者 java.util.concurrent.CopyOnWriteArraySet<E>
类型参数:
E - 此 collection 中所保存元素的类型
所有已实现的接口:
Serializable, Iterable<E>, Collection<E>, Set<E>

public class CopyOnWriteArraySet<E>
extends AbstractSet<E>
implements Serializable

对其所有操作使用内部 CopyOnWriteArrayListSet。因此,它共享以下相同的基本属性:

示例用法。 以下代码使用一个写时复制(copy-on-write)的 set,以维护在状态更新时执行某项操作的一组 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 的成员。

从以下版本开始:
1.5
另请参见:
CopyOnWriteArrayList, 序列化表格

构造方法摘要
CopyOnWriteArraySet()
          创建一个空 set。
CopyOnWriteArraySet(Collection<? extends E> c)
          创建一个包含指定 collection 所有元素的 set。
 
方法摘要
 boolean add(E e)
          如果指定元素并不存在于此 set 中,则添加它。
 boolean addAll(Collection<? extends E> c)
          如果此 set 中没有指定 collection 中的所有元素,则将它们都添加到此 set 中。
 void clear()
          移除此 set 中的所有元素。
 boolean contains(Object o)
          如果此 set 包含指定元素,则返回 true
 boolean containsAll(Collection<?> c)
          如果此 set 包含指定 collection 的所有元素,则返回 true
 boolean equals(Object o)
          比较指定对象与此 set 的相等性。
 boolean isEmpty()
          如果此 set 不包含任何元素,则返回 true
 Iterator<E> iterator()
          返回按照元素添加顺序在此 set 中包含的元素上进行迭代的迭代器。
 boolean remove(Object o)
          如果指定元素存在于此 set 中,则将其移除。
 boolean removeAll(Collection<?> c)
          移除此 set 中包含在指定 collection 中的所有元素。
 boolean retainAll(Collection<?> c)
          仅保留此 set 中那些包含在指定 collection 中的元素。
 int