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