|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.util.concurrent
类 CopyOnWriteArrayList<E>
java.lang.Object java.util.concurrent.CopyOnWriteArrayList<E>
- 类型参数:
-
E
- 此 collection 中保持的元素类型
- 所有已实现的接口:
- Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess
-
public class CopyOnWriteArrayList<E>
- extends Object
- implements List<E>, RandomAccess, Cloneable, Serializable
ArrayList
的一个线程安全的变体,其中所有可变操作(添加、设置,等等)都是通过对基础数组进行一次新的复制来实现的。
这一般需要很大的开销,但是当遍历操作的数量大大超过可变操作的数量时,这种方法可能比其他替代方法更 有效。在不能或不想进行同步遍历,但又需要从并发线程中排除冲突时,它也很有用。“快照”风格的迭代器方法在创建迭代器时使用了对数组状态的引用。此数组在迭代器的生存期内绝不会更改,因此不可能发生冲突,并且迭代器保证不会抛出 ConcurrentModificationException。自创建迭代器以后,迭代器就不会反映列表的添加、移除或者更改。不支持迭代器上更改元素的操作(移除、设置和添加)。这些方法将抛出 UnsupportedOperationException。
此类是 Java Collections Framework 的成员。
- 从以下版本开始:
- 1.5
- 另请参见:
- 序列化表格
构造方法摘要 | |
---|---|
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 |
构造方法详细信息 |
---|
CopyOnWriteArrayList
public CopyOnWriteArrayList()
- 创建一个空列表。
CopyOnWriteArrayList
public CopyOnWriteArrayList(Collection<? extends E> c)
-
按照 Collection 的迭代器返回元素的顺序,创建一个包含指定 Collection 的元素的列表。
- 参数:
-
c
- 最初保持元素的 collection
CopyOnWriteArrayList
public CopyOnWriteArrayList(E[] toCopyIn)
-
创建一个新的 CopyOnWriteArrayList,它保持给定数组的副本。
- 参数:
-
toCopyIn
- 数组(将此数组的副本用作内部数组)
方法详细信息 |
---|
size
public int size()
isEmpty
public boolean isEmpty()
- 测试此列表是否没有任何元素。
-
- 返回:
- 如果此列表没有任何元素,则返回 true;否则返回 false。
contains
public boolean contains(Object elem)
- 如果此列表包含指定的元素,则返回 true。
-
- 参数:
-
elem
- 测试该元素是否在此列表中存在。 - 返回:
-
如果指定的元素存在,则返回
true
;否则返回false
。
indexOf
public int indexOf(Object elem)
- 搜索第一次出现的给定参数,用 equals 方法进行相等性测试。
-
- 参数:
-
elem
- 一个对象。 - 返回:
- 列表中第一次出现该参数的位置索引;如果未找到对象,则返回 -1。
- 另请参见:
-
Object.equals(Object)
indexOf
public int indexOf(E elem, int index)
- 从 index 处开始,搜索第一次出现的给定参数,用 equals 方法进行相等性测试。
-
-
- 参数:
-
elem
- 一个对象。 -
index
- 搜索起始处的索引。 - 返回:
- 在列表中的 index 处或其后的位置上,第一次出现该对象参数的位置索引;如果未找到对象,则返回 -1。
- 另请参见:
-
Object.equals(Object)