1. CopyOnWriteArraySet
CopyOnWriteArraySet是在CopyOnWriteArrayList的基础上使用了Java的装饰器模式,很多方法如底层使用了CopyOnWriteArrayList来存储数据,remove()方法调用CopyOnWriteArrayList的remove()方法,add()方法调用了CopyOnWriteArrayList的addIfAbsent()方法。所以CopyOnWriteArrayList的实现原理适用于CopyOnWriteArraySet。
2. CopyOnWriteArraySet原理
public class CopyOnWriteArraySet<E> extends AbstractSet<E>
implements java.io.Serializable {
private final CopyOnWriteArrayList<E> al;
public CopyOnWriteArraySet() {
al = new CopyOnWriteArrayList<E>();
}
public boolean add(E e) {
return al.addIfAbsent(e);
}
......
}