CopyOnWriteArrayList 类

定义

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

[Android.Runtime.Register("java/util/concurrent/CopyOnWriteArrayList", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class CopyOnWriteArrayList : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.ICloneable, Java.Util.IList, Java.Util.IRandomAccess
[<Android.Runtime.Register("java/util/concurrent/CopyOnWriteArrayList", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type CopyOnWriteArrayList = class
    inherit Object
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface ICloneable
    interface IList
    interface ICollection
    interface IIterable
    interface IRandomAccess
[<Android.Runtime.Register("java/util/concurrent/CopyOnWriteArrayList", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type CopyOnWriteArrayList = class
    inherit Object
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface ICloneable
    interface IList
    interface ICollection
    interface IIterable
    interface ISequencedCollection
    interface IRandomAccess
继承
CopyOnWriteArrayList
属性
实现

注解

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

这通常成本太高,但当遍历操作大大超过变化数时,它可能<><>比替代方法更有效,并且当不能或不想同步遍历时非常有用,但需要排除并发线程之间的干扰。 “snapshot”样式迭代器方法使用对创建迭代器时数组状态的引用。 此数组在迭代器的生存期内永远不会更改,因此无法进行干扰,并且保证迭代器不会引发 ConcurrentModificationException。 迭代器不会反映自创建迭代器以来对列表的添加、删除或更改。 不支持对迭代器本身(removesetadd)执行元素更改操作。 这些方法引发 UnsupportedOperationException

允许所有元素,包括 null.

内存一致性影响:与其他并发集合一样,在将对象放入 CopyOnWriteArrayList<i>发生之前</i> 操作之前线程中的操作,然后从 CopyOnWriteArrayList 另一个线程中访问或删除该元素。

此类是 Java Collections Framework 的成员。

在 1.5 中添加。

Java文档java.util.concurrent.CopyOnWriteArrayList

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

构造函数

名称 说明
CopyOnWriteArrayList()

创建空列表。

CopyOnWriteArrayList(ICollection)

创建一个列表,其中包含指定集合的元素,顺序由集合的迭代器返回。

CopyOnWriteArrayList(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

CopyOnWriteArrayList(Object[])

创建保存给定数组副本的列表。

属性

名称 说明
Class

返回此 Object的运行时类。

(继承自 Object)
First

要添加

Handle

基础 Android 实例的句柄。

(继承自 Object)
IsEmpty

如果此列表不包含任何元素,则 true 返回。

JniIdentityHashCode

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

(继承自 Object)
JniPeerMembers

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

Last

要添加

PeerReference

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

方法

名称 说明
Add(Int32, Object)

在此列表中指定位置插入指定的元素。

Add(Object)

将指定的元素追加到此列表的末尾。

AddAll(ICollection)

按照指定集合迭代器返回的顺序,将指定集合中的所有元素追加到此列表的末尾。

AddAll(Int32, ICollection)

将指定集合中的所有元素插入此列表中,从指定位置开始。

AddAllAbsent(ICollection)

将指定集合中尚未包含在此列表中的所有元素追加到此列表的末尾,顺序由指定的集合迭代器返回它们。

AddFirst(Object)

要添加

AddIfAbsent(Object)

追加元素(如果不存在)。

AddLast(Object)

要添加

Clear()

从此列表中删除所有元素。

Clone()

返回此列表的浅表副本。

Contains(Object)

返回 true 此列表是否包含指定的元素。

ContainsAll(ICollection)

如果 true 此列表包含指定集合的所有元素,则返回。

Dispose()

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

(继承自 Object)
Dispose(Boolean)

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

(继承自 Object)
Equals(Object)

指示其他对象是否“等于”此对象。

(继承自 Object)
ForEach(IConsumer)

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

Get(Int32)

要添加

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
IndexOf(Object, Int32)

返回此列表中指定元素的第一个匹配项的索引、从 index中搜索或返回 -1(如果未找到该元素)。

IndexOf(Object)

要添加

Iterator()

按正确的顺序返回此列表中的元素的迭代器。

JavaFinalize()

当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。

(继承自 Object)
LastIndexOf(Object, Int32)

返回此列表中指定元素的最后一个匹配项的索引、从中向后 index搜索或返回 -1(如果未找到该元素)。

LastIndexOf(Object)

要添加

ListIterator()

要添加

ListIterator(Int32)

要添加

Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
Remove(Int32)

删除此列表中指定位置处的元素。

Remove(Object)

从此列表中删除指定元素的第一个匹配项(如果存在)。

RemoveAll(ICollection)

从此列表中删除指定集合中包含的所有元素。

RemoveFirst()

要添加

RemoveIf(IPredicate)

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

RemoveLast()

要添加

ReplaceAll(IUnaryOperator)

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

RetainAll(ICollection)

仅保留指定集合中包含的此列表中的元素。

Reversed()

要添加

Set(Int32, Object)

将此列表中的指定位置处的元素替换为指定的元素。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
Size()

返回此列表中的元素数目。

Sort(IComparator)

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

Spliterator()

返回 Spliterator 此列表中的元素的上方。

SubList(Int32, Int32)

返回此列表部分(非独占和toIndex独占)之间的fromIndex视图。

ToArray()

返回一个数组,该数组包含此列表中的所有元素(从第一个到最后一个元素)。

ToArray(Object[])

返回一个数组,该数组包含此列表中的所有元素(从第一个到最后一个元素):返回的数组的运行时类型是指定数组的运行时类型。

ToArray<T>()

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

(继承自 Object)
Wait()

使当前线程等待,直到唤醒它,通常是通过 em 通知/em< 或 >em<interrupted>/em<。><>

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)

显式接口实现

名称 说明
IJavaPeerable.Disposed()

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

(继承自 Object)
IJavaPeerable.Finalized()

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

(继承自 Object)

扩展方法

名称 说明
GetJniTypeName(IJavaPeerable)

获取实例 self类型的 JNI 名称。

JavaAs<TResult>(IJavaPeerable)

尝试强制self键入TResult,检查强制是否在Java端有效。

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

ToEnumerable(IIterable)

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

ToEnumerable<T>(IIterable)

一种线程安全变体java.util.ArrayListadd通过创建基础数组的新副本来实现所有可变操作(set等等)。

TryJavaCast<TResult>(IJavaPeerable, TResult)

尝试强制self键入TResult,检查强制是否在Java端有效。

适用于