|
JavaTM 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
- 如果指定数组为 null
public 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 为 null
contains(Object)
public boolean addAll(Collection<? extends E> c)
Collection<E>
中的
addAll
Set<E>
中的
addAll
AbstractCollection<E>
中的
addAll
c
- 包含将添加到此 set 中的元素的 collection
NullPointerException
- 如果指定 collection 为 null
add(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 为 null
remove(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 为 null
remove(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 Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。