言語

ArrayList クラス

定義

List インターフェイスのサイズ変更可能な配列の実装。

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

注釈

List インターフェイスのサイズ変更可能な配列の実装。 省略可能なすべてのリスト操作を実装し、 nullを含むすべての要素を許可します。 このクラスは、 List インターフェイスの実装に加えて、リストを格納するために内部的に使用される配列のサイズを操作するメソッドを提供します。 (このクラスは、同期されていない点を除き、 Vectorとほぼ同じです)。

sizeisEmptygetsetiteratorlistIteratorの操作は一定の時間で実行されます。 add操作は償却定数時間で実行されます。つまり、n 個の要素を追加するには O(n) 時間が必要です。 他のすべての操作は、線形時間で実行されます (大まかに言えば)。 定数係数は、 LinkedList 実装の場合と比較して低くなります。

ArrayList インスタンスには 容量があります。 容量は、リストに要素を格納するために使用される配列のサイズです。 これは常に、少なくともリスト サイズと同じ大きさです。 ArrayList に要素が追加されると、その容量は自動的に拡張されます。 拡張ポリシーの詳細は、要素の追加に一定の償却時間コストがあるという事実を超えて指定されていません。

アプリケーションでは、ArrayList操作を使用して多数の要素を追加する前に、ensureCapacity インスタンスの容量を増やすことができます。 これにより、増分再割り当て量が減る可能性があります。

<strong>この実装が同期されていないことを確認します。</strong> 複数のスレッドが同時に ArrayList インスタンスにアクセスし、少なくとも 1 つのスレッドがリストを構造的に変更する場合は、外部で同期する 必要があります 。 (構造変更とは、1 つ以上の要素を追加または削除したり、バッキング配列の明示的なサイズを変更したりする操作です。要素の値を設定するだけでは構造変更ではありません)。これは通常、リストを自然にカプセル化するオブジェクトを同期することによって実現されます。

このようなオブジェクトが存在しない場合は、 Collections#synchronizedList Collections.synchronizedList メソッドを使用してリストを "ラップ" する必要があります。 これは、リストへの誤った同期されていないアクセスを防ぐために、作成時に行うのが最善です。

List list = Collections.synchronizedList(new ArrayList(...));

このクラスの #iterator() iterator および #listIterator(int) listIterator メソッドによって返される反復子は、 <em>fail-fast</em>: 反復子の作成後にリストがいつでも構造的に変更される場合、反復子の独自の ListIterator#remove() remove または ListIterator#add(Object) add メソッドを使用する場合を除き、反復子は ConcurrentModificationExceptionをスローします。 したがって、同時変更が発生した場合、反復子は、将来不確定な時点で任意の非決定論的な動作を危険にさらすのではなく、迅速かつクリーンに失敗します。

反復子のフェイルファスト動作は、一般的に言えば、非同期の同時変更が存在する場合にハード保証することは不可能であるため、保証できないことに注意してください。 フェイルファスト反復子は、ベスト エフォートベースで ConcurrentModificationException をスローします。 したがって、正しさのためにこの例外に依存するプログラムを記述するのは間違っています。 反復子のフェイルファスト動作はバグを検出するためにのみ使用する必要があります。

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

1.2 で追加されました。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

名前 説明
ArrayList()

初期容量が 10 の空のリストを構築します。

ArrayList(ICollection)

コレクションの反復子によって返される順序で、指定したコレクションの要素を含むリストを構築します。

ArrayList(Int32)

指定した初期容量を持つ空のリストを構築します。

ArrayList(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

プロパティ

名前 説明
Class

この Objectのランタイム クラスを返します。

(継承元 Object)
First

追加する

Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
IsEmpty

追加する

(継承元 AbstractCollection)
JniIdentityHashCode

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

(継承元 Object)
JniManagedPeerState

List インターフェイスのサイズ変更可能な配列の実装。

(継承元 JavaObject)
JniPeerMembers

List インターフェイスのサイズ変更可能な配列の実装。

Last

追加する

ModCount

このリストが 構造的に変更された回数。

(継承元 AbstractList)
PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

(継承元 Object)
ThresholdClass

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

ThresholdType

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

メソッド

名前 説明
Add(Int32, Object)

追加する

(継承元 AbstractList)
Add(Object)

追加する

(継承元 AbstractCollection)
AddAll(ICollection)

追加する

(継承元 AbstractCollection)
AddAll(Int32, ICollection)

追加する

(継承元 AbstractList)
AddFirst(Object)

追加する

AddLast(Object)

追加する

Clear()

追加する

(継承元 AbstractCollection)
Clone()

この ArrayList インスタンスの浅いコピーを返します。

Construct(JniObjectReference, JniObjectReferenceOptions)

List インターフェイスのサイズ変更可能な配列の実装。

(継承元 JavaObject)
Contains(Object)

追加する

(継承元 AbstractCollection)
ContainsAll(ICollection)

追加する

(継承元 AbstractCollection)
Dispose()

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
DisposeUnlessReferenced()

List インターフェイスのサイズ変更可能な配列の実装。

(継承元 JavaObject)
EnsureCapacity(Int32)

必要に応じて、この ArrayList インスタンスの容量を増やして、最小容量引数で指定された要素の数以上を保持できるようにします。

Equals(Object)

List インターフェイスのサイズ変更可能な配列の実装。

(継承元 JavaObject)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
ForEach(IConsumer)

List インターフェイスのサイズ変更可能な配列の実装。

Get(Int32)

このリスト内の指定した位置にある要素を返します。

GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
IndexOf(Object)

追加する

(継承元 AbstractList)
Iterator()

このリスト内の要素に対する反復子を適切な順序で返します。

(継承元 AbstractList)
JavaFinalize()
古い.

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
LastIndexOf(Object)

追加する

(継承元 AbstractList)
ListIterator()

追加する

(継承元 AbstractList)
ListIterator(Int32)

追加する

(継承元 AbstractList)
Notify()

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

(継承元 Object)
NotifyAll()

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

(継承元 Object)
Remove(Int32)

追加する

(継承元 AbstractList)
Remove(Object)

追加する

(継承元 AbstractCollection)
RemoveAll(ICollection)

追加する

(継承元 AbstractCollection)
RemoveFirst()

追加する

RemoveIf(IPredicate)

List インターフェイスのサイズ変更可能な配列の実装。

RemoveLast()

追加する

RemoveRange(Int32, Int32)

このリストから、 fromIndex、包括、および toIndexの間のインデックスを持つすべての要素が排他的に削除されます。

(継承元 AbstractList)
ReplaceAll(IUnaryOperator)

List インターフェイスのサイズ変更可能な配列の実装。

RetainAll(ICollection)

追加する

(継承元 AbstractCollection)
Set(Int32, Object)

追加する

(継承元 AbstractList)
SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

List インターフェイスのサイズ変更可能な配列の実装。

(継承元 JavaObject)
Size()

このリスト内の要素の数を返します。

Sort(IComparator)

List インターフェイスのサイズ変更可能な配列の実装。

Spliterator()

この一覧の要素に対して、 <em>late-binding</em> および <em>fail-fast</em>Spliterator を作成します。

SubList(Int32, Int32)

追加する

(継承元 AbstractList)
ToArray()

追加する

(継承元 AbstractCollection)
ToArray(Object[])

追加する

(継承元 AbstractCollection)
ToArray<T>()

このJava配列ラッパーからマネージド配列を作成します。

(継承元 Object)
ToString()

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

(継承元 Object)
TrimToSize()

この ArrayList インスタンスの容量を、リストの現在のサイズにトリミングします。

UnregisterFromRuntime()

相互運用ランタイムからこのJava ピアの登録を解除します。

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

List インターフェイスのサイズ変更可能な配列の実装。

(継承元 JavaObject)
IJavaPeerable.Finalized()

List インターフェイスのサイズ変更可能な配列の実装。

(継承元 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

List インターフェイスのサイズ変更可能な配列の実装。

(継承元 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

List インターフェイスのサイズ変更可能な配列の実装。

(継承元 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

List インターフェイスのサイズ変更可能な配列の実装。

(継承元 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

List インターフェイスのサイズ変更可能な配列の実装。

(継承元 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

List インターフェイスのサイズ変更可能な配列の実装。

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

List インターフェイスのサイズ変更可能な配列の実装。

ToEnumerable(IIterable)

Java IIterableを反復処理するIEnumerableを返します。これにより、foreachと LINQ をJavaコレクション型で使用できます。 各要素は、Java インスタンスから対応するマネージド型にマーシャリングされます。

ToEnumerable<T>(IIterable)

Java IIterableを反復処理し、各要素をTにマーシャリングするIEnumerable<T>を返します。 これにより、foreachと LINQ をJavaコレクション型で使用できます。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象