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);
}
......
}