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);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章