|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
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 o)
确保此 collection 包含指定的元素(可选操作)。 |
|
boolean |
addAll(Collection<? extends E> c)
将指定 collection 中的所有元素添加到此 collection 中(可选操作)。 |
|
void |
clear()
从此 collection 中移除所有元素(可选操作)。 |
|
boolean |
contains(Object o)
如果此 collection 包含指定的元素,则返回 true。 |
|
boolean |
containsAll(Collection<?> c)
如果此 collection 包含指定 collection 中的所有元素,则返回 true。 |
|
boolean |
isEmpty()
如果此 collection 不包含元素,则返回 true。 |
|
Iterator<E> |
iterator()
返回在此 collection 中的元素上进行迭代的迭代器。 |
|
boolean |
remove(Object o)
从此 collection 中移除指定元素的单个实例(如果存在)(可选操作)。 |
|
boolean |
removeAll(Collection<?> c)
从此 set 中移除包含在指定 collection 中的所有元素(可选操作)。 |
|
boolean |
retainAll(Collection<?> c)
仅在此 collection 中保留指定 collection 中所包含的元素(可选操作)。 |
|
int |
size()
返回此 collection 中的元素数。 |
|
Object[] |
toArray()
返回包含此 collection 中所有元素的数组。 |
|
|
toArray(T[] a)
返回包含此 collection 中所有元素的数组;返回数组的运行时类型是指定数组的类型。 |
|
| 从类 java.util.AbstractSet 继承的方法 |
|---|
equals, 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| 方法详细信息 |
|---|
public int size()
AbstractCollection 复制的描述
Collection<E> 中的 sizeSet<E> 中的 sizeAbstractCollection<E> 中的 sizepublic boolean isEmpty()
AbstractCollection 复制的描述此实现返回 size() == 0。
Collection<E> 中的 isEmptySet<E> 中的 isEmptyAbstractCollection<E> 中的 isEmptypublic boolean contains(Object o)
AbstractCollection 复制的描述此实现迭代该 collection 中的元素,并依次检查每个元素以确定其是否与指定的元素相等。
Collection<E> 中的 containsSet<E> 中的 containsAbstractCollection<E> 中的 containso - 要检查的对象,以确定其是否包含在此 collection 中。
public Object[] toArray()
AbstractCollection 复制的描述此实现会分配返回的数组,并迭代 collection 中的元素,将每个对象引用存储在数组的下一个连续元素中,并从元素 0 开始。
Collection<E> 中的 toArraySet<E> 中的 toArrayAbstractCollection<E> 中的 toArraypublic <T> T[] toArray(T[] a)
AbstractCollection 复制的描述如果指定的数组能容纳 collection,并且有剩余的空间(即数组的元素比 collection 多),那么会将紧挨着 collection 尾部的元素设置为 null(这对确定 collection 的长度很有用,但只有 在调用方知道 collection 不包含任何 null 元素时才可行)。
如果此 collection 保证其迭代器按顺序返回其元素,那么此方法也必须按相同的顺序返回这些元素。
此实现会检查该数组是否足够大,以包含该 collection 中的元素;如果不能包含,则将分配一个具有适当大小和类型的新数组(使用反射)。然后,在该 collection 上进行迭代,将每个对象引用存储在数组的下一个连续元素中,并从元素 0 开始。如果该数组比该 collection 大,则在该 collection 尾部后面的第一个位置存储 null。
Collection<E> 中的 toArraySet<E> 中的 toArrayAbstractCollection<E> 中的 toArraya - 存储此 collection 的元素的数组(如果其足够大);否则,将为此分配一个具有相同运行时类型的新数组。
public void clear()
AbstractCollection 复制的描述此实现在此 collection 上进行迭代,并使用 Iterator.remove 操作移除每个元素。为了提高效率,多数实现可能会选择重写此方法。
注意,如果此 collection 的 iterator 方法所返回的迭代器无法实现 remove 方法,并且此 collection 非空,那么此实现将抛出 UnsupportedOperationException。
Collection<E> 中的 clearSet<E> 中的 clearAbstractCollection<E> 中的 clearpublic Iterator<E> iterator()
AbstractCollection 复制的描述
Iterable<E> 中的 iteratorCollection<E> 中的 iteratorSet<E> 中的 iteratorAbstractCollection<E> 中的 iteratorpublic boolean remove(Object o)
AbstractCollection 复制的描述此实现在该 collection 上进行迭代,查找指定的元素。如果找到该元素,那么它会使用迭代器的 remove 方法从该 collection 中移除该元素。
注意,如果此 collection 的 iterator 方法所返回的迭代器无法实现 remove 方法,并且此 collection 包含指定的对象,那么此实现会抛出 UnsupportedOperationException。
Collection<E> 中的 removeSet<E> 中的 removeAbstractCollection<E> 中的 removeo - 要从此 collection 中移除的元素(如果存在)。
public boolean add(E o)
AbstractCollection 复制的描述此实现始终抛出 UnsupportedOperationException。
Collection<E> 中的 addSet<E> 中的 addAbstractCollection<E> 中的 addo - 确保存在于此 collection 中的元素。
public boolean containsAll(Collection<?> c)
AbstractCollection 复制的描述此实现在指定的 collection 上进行迭代,依次检查该迭代器返回的每个元素,查看其是否包含在此 collection 中。如果包含所有元素,则返回 true;否则将返回 false。
Collection<E> 中的 containsAllSet<E> 中的 containsAllAbstractCollection<E> 中的 containsAllc - 将检查其是否包含在此 collection 中的 collection。
AbstractCollection.contains(Object)public boolean addAll(Collection<? extends E> c)
AbstractCollection 复制的描述此实现在指定的 collection 上进行迭代,并依次将迭代器返回的每个对象添加到此 collection 中。
注意,除非重写 add,否则此实现将抛出 UnsupportedOperationException(假定指定的 collection 非空)。
Collection<E> 中的 addAllSet<E> 中的 addAllAbstractCollection<E> 中的 addAllc - 将其元素添加到此 collection 的 collection。
AbstractCollection.add(Object)public boolean removeAll(Collection<?> c)
AbstractSet 复制的描述通过在此 set 和指定 collection 上调用 size 方法,此实现可以确定哪一个更小。如果此 set 中的元素更少,则该实现将在此 set 上进行迭代,依次检查迭代器返回的每个元素,查看它是否包含在指定的 collection 中。如果包含它,则使用迭代器的 remove 方法从此 set 中将其移除。如果指定 collection 中的元素更少,则该实现将在指定的 collection 上进行迭代,并使用此 set 的 remove 方法,从此 set 中移除迭代器返回的每个元素。
注意,如果 iterator 方法返回的迭代器没有实现 remove 方法,则此实现抛出 UnsupportedOperationException。
Collection<E> 中的 removeAllSet<E> 中的 removeAllAbstractSet<E> 中的 removeAllc - 将从此 set 中移除的元素。
AbstractCollection.remove(Object),
AbstractCollection.contains(Object)public boolean retainAll(Collection<?> c)
AbstractCollection 复制的描述此实现在此 collection 上进行迭代,依次检查该迭代器返回的每个元素,以查看其是否包含在指定的 collection 中。如果不是,则使用迭代器的 remove 方法将其从此 collection 中移除。
注意,如果 iterator 方法返回的迭代器无法实现 remove 方法,并且此 collection 包含一个或多个在指定 collection 中不存在的元素,那么此实现将抛出 UnsupportedOperationException。
Collection<E> 中的 retainAllSet<E> 中的 retainAllAbstractCollection<E> 中的 retainAllc - 将保留在此 collection 的元素。
AbstractCollection.remove(Object),
AbstractCollection.contains(Object)
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。