|
JavaTM 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 Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。