|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.util.concurrent.CopyOnWriteArrayList<E>
E
- 此 collection 中保持的元素类型public class CopyOnWriteArrayList<E>
ArrayList
的一个线程安全的变体,其中所有可变操作(添加、设置,等等)都是通过对基础数组进行一次新的复制来实现的。
这一般需要很大的开销,但是当遍历操作的数量大大超过可变操作的数量时,这种方法可能比其他替代方法更 有效。在不能或不想进行同步遍历,但又需要从并发线程中排除冲突时,它也很有用。“快照”风格的迭代器方法在创建迭代器时使用了对数组状态的引用。此数组在迭代器的生存期内绝不会更改,因此不可能发生冲突,并且迭代器保证不会抛出 ConcurrentModificationException。自创建迭代器以后,迭代器就不会反映列表的添加、移除或者更改。不支持迭代器上更改元素的操作(移除、设置和添加)。这些方法将抛出 UnsupportedOperationException。
此类是 Java Collections Framework 的成员。
构造方法摘要 | |
---|---|
CopyOnWriteArrayList()
创建一个空列表。 |
|
CopyOnWriteArrayList(Collection<? extends E> c)
按照 Collection 的迭代器返回元素的顺序,创建一个包含指定 Collection 的元素的列表。 |
|
CopyOnWriteArrayList(E[] toCopyIn)
创建一个新的 CopyOnWriteArrayList,它保持给定数组的副本。 |
方法摘要 | ||
---|---|---|
boolean |
add(E element)
将指定元素追加到此列表的尾部。 |
|
void |
add(int index,
E element)
在此列表中指定位置上插入指定元素。 |
|
boolean |
addAll(Collection<? extends E> c)
按照指定 Collection 的迭代器返回元素的顺序,将指定 Collection 中的所有元素追加此列表的尾部。 |
|
boolean |
addAll(int index,
Collection<? extends E> c)
从指定位置开始,将指定 Collection 的所有元素插入此列表。 |
|
int |
addAllAbsent(Collection<? extends E> c)
按照指定 Collection 的迭代器返回元素的顺序,将指定 Collection 中尚未包含在此列表中的所有元素追加列表的尾部。 |
|
boolean |
addIfAbsent(E element)
追加元素(如果不存在)。 |
|
void |
clear()
从此列表中移除所有元素。 |
|
Object |
clone()
返回此列表的浅表复制。 |
|
boolean |
contains(Object elem)
如果此列表包含指定的元素,则返回 true。 |
|
boolean |
containsAll(Collection<?> c)
如果此 collection 包含指定 collection 的所有元素,则返回 ture。 |
|
boolean |
equals(Object o)
比较指定对象与此列表是否相等。 |
|
E |
get(int index)
返回此列表中指定位置上的元素。 |
|
int |
hashCode()
返回此列表的哈希码值。 |
|
int |
indexOf(E elem,
int index)
从 index 处开始,搜索第一次出现的给定参数,用 equals 方法进行相等性测试。 |
|
int |
indexOf(Object elem)
搜索第一次出现的给定参数,用 equals 方法进行相等性测试。 |
|
boolean |
isEmpty()
测试此列表是否没有任何元素。 |
|
Iterator<E> |
iterator()
返回此 collection 中包含的元素上的 Iterator。 |
|
int |
lastIndexOf(E elem,
int index)
从指定索引处开始向后搜索指定的对象,并返回其索引。 |
|
int |
lastIndexOf(Object elem)
返回指定的对象在列表中最后一次出现的位置索引。 |
|
ListIterator<E> |
listIterator()
返回此列表中元素的 Iterator(按适当顺序)。 |
|
ListIterator<E> |
listIterator(int index)
从列表中指定位置开始,返回此列表中的元素的 ListIterator(按适当顺序)。 |
|
E |
remove(int index)
移除此列表中指定位置上的元素。 |
|
boolean |
remove(Object o)
从此列表中移除指定元素的一个实例,如果存在的话(可选操作)。 |
|
boolean |
removeAll(Collection<?> c)
从此 Collection 中移除所有包含在指定 Collection 中的元素。 |
|
boolean |
retainAll(Collection<?> c)
只保留此 Collection 中包含在指定 Collection 中的元素(可选操作)。 |
|
E |
set(int index,
E element)
用指定的元素替代此列表中指定位置上的元素。 |
|
int |
size()
返回此列表中的元素数。 |
|
List<E> |
subList(int fromIndex,
int toIndex)
返回此列表中 fromIndex(包括)和 toIndex(不包括)之间部分的视图。 |
|
Object[] |
toArray()
返回一个按照正确的顺序包含此列表中所有元素的数组。 |
|
|
toArray(T[] a)
返回一个按照正确的顺序包含此列表所有元素的数组。 |
|
String |
toString()
返回此 Collection 的字符串表示形式,其中包含每个元素的字符串表示形式。 |
从类 java.lang.Object 继承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
public CopyOnWriteArrayList()
public CopyOnWriteArrayList(Collection<? extends E> c)
c
- 最初保持元素的 collectionpublic CopyOnWriteArrayList(E[] toCopyIn)
toCopyIn
- 数组(将此数组的副本用作内部数组)方法详细信息 |
---|
public int size()
public boolean isEmpty()
public boolean contains(Object elem)
elem
- 测试该元素是否在此列表中存在。
true
;否则返回 false
。public int indexOf(Object elem)
elem
- 一个对象。
Object.equals(Object)
public int indexOf(E elem, int index)
elem
- 一个对象。index
- 搜索起始处的索引。
Object.equals(Object)
public int lastIndexOf(Object elem)
List<E>
中的 lastIndexOf
elem
- 所需的元素。
public int lastIndexOf(E elem, int index)
elem
- 所需的元素。index
- 搜索起始处的索引。
public Object clone()
public Object[] toArray()
Arrays.asList(Object[])
public <T> T[] toArray(T[] a)
如果指定的数组能容纳该列表,而且还有剩余空间(即数组的元素比列表多),则将数组中紧随 collection 尾部的元素设置为 null。这在确定列表的长度时很有用,但仅 在调用方知道列表不包含任何 null 元素时才可行。
a
- 要存储列表元素的数组(如果其足够大);否则,将分配一个具有相同运行时类型的新数组。
ArrayStoreException
- a 的运行时类型不是此列表中每个元素的运行时类型的超类型。public E get(int index)
index
- 要返回的元素的索引。
IndexOutOfBoundsException
- 如果索引超出了范围 (index < 0 || index >= size())。public E set(int index, E element)
index
- 要替换的元素的索引。element
- 要在指定位置上存储的元素。
IndexOutOfBoundsException
- 如果索引超出了范围 (index < 0 || index >= size())。public boolean add(E element)
element
- 要追加到此列表的元素。
public void add(int index, E element)
index
- 要插入指定元素的索引。element
- 要插入的元素。
IndexOutOfBoundsException
- 如果索引超出了范围 (index < 0 || index > size())。public E remove(int index)
index
- 要移除的元素的索引。
IndexOutOfBoundsException
- 如果索引超出了范围 (index < 0 || index >= size())。public boolean remove(Object o)
o
- 要从此列表移除的元素(如果存在)。
public boolean addIfAbsent(E element)
element
- 要添加到此 Collection 中的元素(如果不存在)。
public boolean containsAll(Collection<?> c)
此实现在指定 collection 上迭代,依次检查 Iterator 返回的每个元素,查看其是否包含在此 Collection 中。如果已经包含所有元素,则返回 ture,否则返回 false。
Collection<E>
中的 containsAll
List<E>
中的 containsAll
c
- collection
Collection.contains(Object)
public boolean removeAll(Collection<?> c)
c
- collection
Collection.remove(Object)
,
Collection.contains(Object)
public boolean retainAll(Collection<?> c)
c
- collection
Collection.remove(Object)
,
Collection.contains(Object)
public int addAllAbsent(Collection<? extends E> c)
c
- 要添加到此列表中的元素。
public void clear()
public boolean addAll(Collection<? extends E> c)
c
- 要插入此列表的元素。
Collection.add(Object)
public boolean addAll(int index, Collection<? extends E> c)
index
- 插入指定 collection 中第一个元素的索引。c
- 要插入此列表的元素。
IndexOutOfBoundsException
- 如果索引超出了范围 (index < 0 || index > size())。public String toString()
public boolean equals(Object o)
此实现首先检查指定的对象是否是此列表。如果是,则返回 true;否则,它将检查指定的对象是否是一个列表。如果不是,它将返回 false;如果是,它将迭代两个列表,比较相应的元素对。如果有任何比较结果返回 false,则此方法将返回 false。如果其中一个 Iterator 在另一个 Iterator 之前用完了元素,则返回 false(因为列表是不等长的);否则,在迭代完成时返回 true。
o
- 要与此列表进行相等性比较的对象。
Object.hashCode()
,
Hashtable
public int hashCode()
此实现使用了 List.hashCode()
中的定义。
Object.equals(java.lang.Object)
,
Hashtable
public Iterator<E> iterator()
public ListIterator<E> listIterator()
List<E>
中的 listIterator
public ListIterator<E> listIterator(int index)
List<E>
中的 listIterator
index
- 将从 ListIterator 中返回的第一个元素的索引(通过调用 getNext)。
IndexOutOfBoundsException
- 如果索引超出了范围 (index < 0 || index > size())。public List<E> subList(int fromIndex, int toIndex)
如果支持列表(即此列表)通过其他任何方式(而不是通过返回的列表)从结构上进行修改,则此方法返回的列表语义将是不确定的。(从结构上进行修改是指更改列表的大小,或者以其他方式打乱列表,它使正在进行的迭代产生错误的结果。)
fromIndex
- subList 的低端点(包括)。toIndex
- subList 的高端点(不包括)。
IndexOutOfBoundsException
- 非法的端点索引值 (fromIndex < 0 || toIndex > size || fromIndex > toIndex)。
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。