CopyOnWriteArraySet 源码分析

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

posted on 2019-03-25 11:21  竺旭东  阅读(118)  评论(0编辑  收藏  举报

导航