CopyOnWriteArraySet
/**
* CopyOnWriteArraySet 是基于 CopyOnWriteArrayList 实现的,其迭代器是有序的,元素不可重复。
* 所有的操作都委托给底层的 CopyOnWriteArrayList 处理。
*/
public class CopyOnWriteArraySet<E> extends AbstractSet<E>
implements java.io.Serializable {
private static final long serialVersionUID = 5457747651344034263L;
/**
* 封装的 CopyOnWriteArrayList 实例
*/
private final CopyOnWriteArrayList<E> al;
/**
* 创建一个空的 CopyOnWriteArraySet 实例
*/
public CopyOnWriteArraySet() {
al = new CopyOnWriteArrayList<>();
}
@Override
public boolean add(E e) {
/**
* 如果目标元素不存在,则将其添加到当前列表中【重复添加相同的元素并不会改变该元素在列表中的位置】。
*/
return al.addIfAbsent(e);
}