|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.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> 中的 sizeSet<E> 中的 sizeAbstractCollection<E> 中的 sizepublic boolean isEmpty()
Collection<E> 中的 isEmptySet<E> 中的 isEmptyAbstractCollection<E> 中的 isEmptypublic boolean contains(Object o)
Collection<E> 中的 containsSet<E> 中的 containsAbstractCollection<E> 中的 containso - 將測試其是否存在於此 set 中的元素
public Object[] toArray()
不維護對返回陣列的任何參考,因而它將是「安全的」。(換句話說,即使 set 受到陣列的支持,此方法也必須分派一個新的陣列)。因此,調用這可以隨意修改返回的陣列。
此方法充當基於陣列的 API 與基於 collection 的 API 之間的橋樑。
Collection<E> 中的 toArraySet<E> 中的 toArrayAbstractCollection<E> 中的 toArraypublic <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> 中的 toArraySet<E> 中的 toArrayAbstractCollection<E> 中的 toArray存儲此 - set 元素的陣列(如果該陣列足夠大);否則為此分派一個具有相同運行時型別的新陣列
ArrayStoreException - 如果指定陣列的運行時型別不是此 set 每個元素的運行時型別的父級類別型
NullPointerException - 如果指定陣列為 nullpublic void clear()
Collection<E> 中的 clearSet<E> 中的 clearAbstractCollection<E> 中的 clearpublic boolean remove(Object o)
Collection<E> 中的 removeSet<E> 中的 removeAbstractCollection<E> 中的 removeo - 要從此 set 移除的物件(如果存在)
public boolean add(E e)
Collection<E> 中的 addSet<E> 中的 addAbstractCollection<E> 中的 adde - 要添加到此 set 的元素
public boolean containsAll(Collection<?> c)
Collection<E> 中的 containsAllSet<E> 中的 containsAllAbstractCollection<E> 中的 containsAllc - 將被檢查是否存在於此 set 的 collection
NullPointerException - 如果指定 collection 為 nullcontains(Object)public boolean addAll(Collection<? extends E> c)
Collection<E> 中的 addAllSet<E> 中的 addAllAbstractCollection<E> 中的 addAllc - 套件含將添加到此 set 中的元素的 collection
NullPointerException - 如果指定 collection 為 nulladd(Object)public boolean removeAll(Collection<?> c)
Collection<E> 中的 removeAllSet<E> 中的 removeAllAbstractSet<E> 中的 removeAllc - 套件含將從此 set 中移除的元素的 collection
ClassCastException - 如果此 set 的元素的類別與指定 collection 不相容(可選)
NullPointerException - 如果此 set 套件含一個 null 元素並且指定 collection 不允許使用 null 元素(可選),或者指定 collection 為 nullremove(Object)public boolean retainAll(Collection<?> c)
Collection<E> 中的 retainAllSet<E> 中的 retainAllAbstractCollection<E> 中的 retainAllc - 套件含保留在此 set 中的元素的 collection
ClassCastException - 如果此 set 的元素的類別與指定 collection 不相容(可選)
NullPointerException - 如果此 set 套件含一個 null 元素並且指定 collection 不允許使用 null 元素(可選),或者指定 collection 為 nullremove(Object)public Iterator<E> iterator()
在建構迭代器時,返回的迭代器提供該 set 的狀態的快照。在遍歷迭代器時無需同步。該迭代器不 支持 remove 方法。
Iterable<E> 中的 iteratorCollection<E> 中的 iteratorSet<E> 中的 iteratorAbstractCollection<E> 中的 iteratorpublic boolean equals(Object o)
true,如果它也是一個 Set 並且在指定 set 上迭代的迭代器所返回的元素序列與在此 set 上進行迭代迭代器所返回的元素的序列相同。更確切地講,如果兩個迭代器返回相同的元素數,並且對於在指定 set 上進行迭代的迭代器返回的每個元素 e1 而言,都有一個由在此 set 上進行迭代的迭代器返回的元素 e2,且該元素滿足 (e1==null ? e2==null : e1.equals(e2)),則認為兩個迭代器將返回相同的元素。
Collection<E> 中的 equalsSet<E> 中的 equalsAbstractSet<E> 中的 equalso - 將與此 set 進行相等性比較的物件
trueObject.hashCode(),
Hashtable
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。