|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.util.AbstractCollection<E> java.util.AbstractSet<E> java.util.concurrent.CopyOnWriteArraySet<E>
E
- 此 collection 中所保存元素的型別public class CopyOnWriteArraySet<E>
對其所有操作使用內部 CopyOnWriteArrayList
的 Set
。因此,它共享以下相同的基本屬性:
範例用法。 以下程式碼使用一個寫時複製(copy-on-write)的 set,以維護在狀態更新時執行某項操作的一組 Handler 物件。
class Handler { void handle(); ... } class X { private final CopyOnWriteArraySet<Handler> handlers = new CopyOnWriteArraySet<Handler>(); public void addHandler(Handler h) { handlers.add(h); } private long internalState; private synchronized void changeState() { internalState = ...; } public void update() { changeState(); for (Handler handler : handlers) handler.handle(); } }
此類別是 Java Collections Framework 的成員。
CopyOnWriteArrayList
,
序列化表格建構子摘要 | |
---|---|
CopyOnWriteArraySet()
創建一個空 set。 |
|
CopyOnWriteArraySet(Collection<? extends E> c)
創建一個套件含指定 collection 所有元素的 set。 |
方法摘要 | ||
---|---|---|
boolean |
add(E e)
如果指定元素並不存在於此 set 中,則添加它。 |
|
boolean |
addAll(Collection<? extends E> c)
如果此 set 中沒有指定 collection 中的所有元素,則將它們都添加到此 set 中。 |
|
void |
clear()
移除此 set 中的所有元素。 |
|
boolean |
contains(Object o)
如果此 set 套件含指定元素,則返回 true。 |
|
boolean |
containsAll(Collection<?> c)
如果此 set 套件含指定 collection 的所有元素,則返回 true。 |
|
boolean |
equals(Object o)
比較指定對象與此 set 的相等性。 |
|
boolean |
isEmpty()
如果此 set 不包含任何元素,則返回 true。 |
|
Iterator<E> |
iterator()
返回按照元素添加順序在此 set 中包含的元素上進行迭代的迭代器。 |
|
boolean |
remove(Object o)
如果指定元素存在於此 set 中,則將其移除。 |
|
boolean |
removeAll(Collection<?> c)
移除此 set 中包含在指定 collection 中的所有元素。 |
|
boolean |
retainAll(Collection<?> c)
僅保留此 set 中那些包含在指定 collection 中的元素。 |
|
int |
size()
返回此 set 中的元素數目。 |
|
Object[] |
toArray()
返回一個套件含此 set 所有元素的陣列。 |
|
|
toArray(T[] a)
返回一個套件含此 set 所有元素的陣列;返回陣列的運行時型別是指定陣列的型別。 |
從類別 java.util.AbstractSet 繼承的方法 |
---|
hashCode |
從類別 java.util.AbstractCollection 繼承的方法 |
---|
toString |
從類別 java.lang.Object 繼承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
建構子詳細資訊 |
---|
public CopyOnWriteArraySet()
public CopyOnWriteArraySet(Collection<? extends E> c)
c
- 最初包含元素的 collection
NullPointerException
- 如果指定 collection 為 null方法詳細資訊 |
---|
public int size()
Collection<E>
中的 size
Set<E>
中的 size
AbstractCollection<E>
中的 size
public boolean isEmpty()
Collection<E>
中的 isEmpty
Set<E>
中的 isEmpty
AbstractCollection<E>
中的 isEmpty
public boolean contains(Object o)
Collection<E>
中的 contains
Set<E>
中的 contains
AbstractCollection<E>
中的 contains
o
- 將測試其是否存在於此 set 中的元素
public Object[] toArray()
不維護對返回陣列的任何參考,因而它將是「安全的」。(換句話說,即使 set 受到陣列的支持,此方法也必須分派一個新的陣列)。因此,調用這可以隨意修改返回的陣列。
此方法充當基於陣列的 API 與基於 collection 的 API 之間的橋樑。
Collection<E>
中的 toArray
Set<E>
中的 toArray
AbstractCollection<E>
中的 toArray
public <T> T[] toArray(T[] a)
如果指定的陣列能容納 set,並有剩餘的空間(即陣列的元素比 set 多),那麼會將接 set 尾部的元素設置為 null。(僅 當調用者知道此 set 不包含任何 null 元素時,才可使用此方法來確定此 set 的長度。)
如果此 set 對其迭代器返回的元素順序做出了某些保證,那麼此方法必須以相同的順序返回這些元素。
像 toArray()
方法一樣,此方法充當基於陣列 的 API 與基於 collection 的 API 之間的橋樑。更進一步說,此方法允許對輸出陣列的運行時型別進行精確控制,在某些情況下,可以用來節省分派開銷。
假定 x 是只包含字元串的一個已知 set。以下程式碼用來將該 set 轉儲到一個新分派的 String 陣列:
String[] y = x.toArray(new String[0]);注意,toArray(new Object[0]) 和 toArray() 在功能上是相同的。
Collection<E>
中的 toArray
Set<E>
中的 toArray
AbstractCollection<E>
中的 toArray
存儲此
- set 元素的陣列(如果該陣列足夠大);否則為此分派一個具有相同運行時型別的新陣列
ArrayStoreException
- 如果指定陣列的運行時型別不是此 set 每個元素的運行時型別的父級類別型
NullPointerException
- 如果指定陣列為 nullpublic void clear()
Collection<E>
中的 clear
Set<E>
中的 clear
AbstractCollection<E>
中的 clear
public boolean remove(Object o)
Collection<E>
中的 remove
Set<E>
中的 remove
AbstractCollection<E>
中的 remove
o
- 要從此 set 移除的物件(如果存在)
public boolean add(E e)
Collection<E>
中的 add
Set<E>
中的 add
AbstractCollection<E>
中的 add
e
- 要添加到此 set 的元素
public boolean containsAll(Collection<?> c)
Collection<E>
中的 containsAll
Set<E>
中的 containsAll
AbstractCollection<E>
中的 containsAll
c
- 將被檢查是否存在於此 set 的 collection
NullPointerException
- 如果指定 collection 為 nullcontains(Object)
public boolean addAll(Collection<? extends E> c)
Collection<E>
中的 addAll
Set<E>
中的 addAll
AbstractCollection<E>
中的 addAll
c
- 套件含將添加到此 set 中的元素的 collection
NullPointerException
- 如果指定 collection 為 nulladd(Object)
public boolean removeAll(Collection<?> c)
Collection<E>
中的 removeAll
Set<E>
中的 removeAll
AbstractSet<E>
中的 removeAll
c
- 套件含將從此 set 中移除的元素的 collection
ClassCastException
- 如果此 set 的元素的類別與指定 collection 不相容(可選)
NullPointerException
- 如果此 set 套件含一個 null 元素並且指定 collection 不允許使用 null 元素(可選),或者指定 collection 為 nullremove(Object)
public boolean retainAll(Collection<?> c)
Collection<E>
中的 retainAll
Set<E>
中的 retainAll
AbstractCollection<E>
中的 retainAll
c
- 套件含保留在此 set 中的元素的 collection
ClassCastException
- 如果此 set 的元素的類別與指定 collection 不相容(可選)
NullPointerException
- 如果此 set 套件含一個 null 元素並且指定 collection 不允許使用 null 元素(可選),或者指定 collection 為 nullremove(Object)
public Iterator<E> iterator()
在建構迭代器時,返回的迭代器提供該 set 的狀態的快照。在遍歷迭代器時無需同步。該迭代器不 支持 remove 方法。
Iterable<E>
中的 iterator
Collection<E>
中的 iterator
Set<E>
中的 iterator
AbstractCollection<E>
中的 iterator
public boolean equals(Object o)
true
,如果它也是一個 Set
並且在指定 set 上迭代的迭代器所返回的元素序列與在此 set 上進行迭代迭代器所返回的元素的序列相同。更確切地講,如果兩個迭代器返回相同的元素數,並且對於在指定 set 上進行迭代的迭代器返回的每個元素 e1
而言,都有一個由在此 set 上進行迭代的迭代器返回的元素 e2
,且該元素滿足 (e1==null ? e2==null : e1.equals(e2))
,則認為兩個迭代器將返回相同的元素。
Collection<E>
中的 equals
Set<E>
中的 equals
AbstractSet<E>
中的 equals
o
- 將與此 set 進行相等性比較的物件
true
Object.hashCode()
,
Hashtable
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。