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のスレッド セーフなバリアント。

通常、これはコストが高すぎますが、<em></em>トラバーサル操作が変異を大幅に上回る場合よりも効率的であり、トラバーサルを同期できない場合や同期しない場合に、同時スレッド間の干渉を排除する必要がある場合に便利です。 "snapshot" スタイルの反復子メソッドは、反復子が作成された時点での配列の状態への参照を使用します。 この配列は反復子の有効期間中に変更されないため、干渉は不可能であり、反復子は ConcurrentModificationExceptionをスローしないことが保証されます。 反復子は、反復子の作成以降、リストへの追加、削除、または変更を反映しません。 反復子自体 (removesetadd) に対する要素変更操作はサポートされていません。 これらのメソッドは UnsupportedOperationExceptionをスローします。

nullを含め、すべての要素が許可されます。

メモリ整合性の影響: 他の同時実行コレクションと同様に、オブジェクトを CopyOnWriteArrayList<i>happen-before</i> に配置する前のスレッド内のアクションは、別のスレッドの CopyOnWriteArrayList からその要素にアクセスまたは削除された後のアクションです。

このクラスは、 Java Collections Framework のメンバーです。

1\.5 で追加されました。

java.util.concurrent.CopyOnWriteArrayListの Java ドキュメント。

このページの一部は、Androidオープンソースプロジェクトによって作成および共有された作業に基づく変更でありCreative Commons 2.5属性ライセンスに記載されている条件に従って使用されます。

コンストラクター

名前 説明
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 は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

メソッド

名前 説明
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()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 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)

排他的な fromIndex、包括、および toIndexの間の、このリストの一部のビューを返します。

ToArray()

このリスト内のすべての要素を適切な順序で (最初から最後の要素まで) 含む配列を返します。

ToArray(Object[])

このリスト内のすべての要素を適切な順序で (最初から最後の要素まで) 含む配列を返します。返される配列のランタイム型は、指定された配列のランタイム型です。

ToArray<T>()

基になる配列の新しいコピーを作成することによって、すべての変更操作 (java.util.ArrayListaddなど) が実装されるsetのスレッド セーフなバリアント。

(継承元 Object)
ToString()

オブジェクトの文字列表現を返します。

(継承元 Object)
UnregisterFromRuntime()

基になる配列の新しいコピーを作成することによって、すべての変更操作 (java.util.ArrayListaddなど) が実装されるsetのスレッド セーフなバリアント。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</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側で有効であることを確認します。

適用対象