ArrayList クラス

定義

必要に応じてサイズが動的に拡大される配列を使用して IList インターフェイスを実装します。

public ref class ArrayList : System::Collections::IList
public ref class ArrayList : ICloneable, System::Collections::IList
public class ArrayList : System.Collections.IList
public class ArrayList : ICloneable, System.Collections.IList
[System.Serializable]
public class ArrayList : ICloneable, System.Collections.IList
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ArrayList : ICloneable, System.Collections.IList
type ArrayList = class
    interface IEnumerable
    interface IList
    interface ICollection
type ArrayList = class
    interface ICollection
    interface IEnumerable
    interface IList
    interface ICloneable
type ArrayList = class
    interface IEnumerable
    interface IList
    interface ICollection
    interface ICloneable
[<System.Serializable>]
type ArrayList = class
    interface IList
    interface ICollection
    interface IEnumerable
    interface ICloneable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ArrayList = class
    interface IList
    interface ICollection
    interface IEnumerable
    interface ICloneable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ArrayList = class
    interface IList
    interface ICloneable
    interface ICollection
    interface IEnumerable
Public Class ArrayList
Implements IList
Public Class ArrayList
Implements ICloneable, IList
継承
ArrayList
派生
属性
実装

次の例は、を作成して初期化する方法 ArrayList と、その値を表示する方法を示しています。

using namespace System;
using namespace System::Collections;
void PrintValues( IEnumerable^ myList );
int main()
{
   
   // Creates and initializes a new ArrayList.
   ArrayList^ myAL = gcnew ArrayList;
   myAL->Add( "Hello" );
   myAL->Add( "World" );
   myAL->Add( "!" );
   
   // Displays the properties and values of the ArrayList.
   Console::WriteLine( "myAL" );
   Console::WriteLine( "    Count:    {0}", myAL->Count );
   Console::WriteLine( "    Capacity: {0}", myAL->Capacity );
   Console::Write( "    Values:" );
   PrintValues( myAL );
}

void PrintValues( IEnumerable^ myList )
{
   IEnumerator^ myEnum = myList->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Object^ obj = safe_cast<Object^>(myEnum->Current);
      Console::Write( "   {0}", obj );
   }

   Console::WriteLine();
}

/* 
This code produces output similar to the following:

myAL
    Count:    3
    Capacity: 4
    Values:   Hello   World   !

*/
using System;
using System.Collections;
public class SamplesArrayList  {

   public static void Main()  {

      // Creates and initializes a new ArrayList.
      ArrayList myAL = new ArrayList();
      myAL.Add("Hello");
      myAL.Add("World");
      myAL.Add("!");

      // Displays the properties and values of the ArrayList.
      Console.WriteLine( "myAL" );
      Console.WriteLine( "    Count:    {0}", myAL.Count );
      Console.WriteLine( "    Capacity: {0}", myAL.Capacity );
      Console.Write( "    Values:" );
      PrintValues( myAL );
   }

   public static void PrintValues( IEnumerable myList )  {
      foreach ( Object obj in myList )
         Console.Write( "   {0}", obj );
      Console.WriteLine();
   }
}


/*
This code produces output similar to the following:

myAL
    Count:    3
    Capacity: 4
    Values:   Hello   World   !

*/
Imports System.Collections

Public Class SamplesArrayList    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new ArrayList.
        Dim myAL As New ArrayList()
        myAL.Add("Hello")
        myAL.Add("World")
        myAL.Add("!")
        
        ' Displays the properties and values of the ArrayList.
        Console.WriteLine("myAL")
        Console.WriteLine("    Count:    {0}", myAL.Count)
        Console.WriteLine("    Capacity: {0}", myAL.Capacity)
        Console.Write("    Values:")
        PrintValues(myAL)
    End Sub

    Public Shared Sub PrintValues(myList As IEnumerable)
        Dim obj As [Object]
        For Each obj In  myList
            Console.Write("   {0}", obj)
        Next obj
        Console.WriteLine()
    End Sub

End Class


' This code produces output similar to the following:
' 
' myAL
'     Count:    3
'     Capacity: 4
'     Values:   Hello   World   !

注釈

重要

新しい開発にはクラスを使用しないことをお勧めし ArrayList ます。 代わりに、ジェネリッククラスを使用することをお勧め List<T> します。 クラスは、 ArrayList オブジェクトの異種コレクションを保持するように設計されています。 ただし、常に最適なパフォーマンスが得られるとは限りません。 代わりに、次のことをお勧めします。

  • オブジェクトの異種コレクションの場合 List<Object> は、(C# の場合) または List(Of Object) (Visual Basic) 型を使用します。
  • オブジェクトの同種コレクションの場合は、クラスを使用し List<T> ます。
    これらのクラスの相対的なパフォーマンスの詳細については、リファレンストピックの「 パフォーマンスに関する考慮事項 」を参照してください List<T> 。 非ジェネリックコレクション型ではなく、ジェネリックの使用に関する一般的な情報については、「GitHub で非ジェネリックコレクションを使用することはできません。」を参照してください。

ArrayList 並べ替えは保証されていません。 の並べ替えが ArrayList Sort 必要な操作 (など) を実行する前に、メソッドを呼び出してを並べ替える必要があり BinarySearch ArrayList ます。 新しい要素が追加されたときに自動的に並べ替えられるコレクションを維持するには、クラスを使用し SortedSet<T> ます。

の容量は ArrayList 、が保持できる要素の数です ArrayList 。 要素がに追加されると ArrayList 、再割り当てによって必要に応じて容量が自動的に増加します。 容量は、を呼び出す TrimToSize か、プロパティを明示的に設定することによって減らすことができ Capacity ます。

.NET Framework のみ: 非常に大きなオブジェクトの場合は ArrayListenabled <gcAllowVeryLargeObjects> 実行時環境で構成要素の属性をに設定することによって、64ビットシステム上の最大容量を20億要素に増やすことができ true ます。

このコレクションの要素には、整数インデックスを使用してアクセスできます。 このコレクションのインデックスは0から始まります。

ArrayListコレクションは、 null 有効な値としてを受け入れます。 また、重複する要素も許可します。

コレクション内の要素としての多次元配列の使用はサポートされて ArrayList いません。

コンストラクター

ArrayList()

空で、既定の初期量を備えた、ArrayList クラスの新しいインスタンスを初期化します。

ArrayList(ICollection)

指定したコレクションからコピーした要素を格納し、コピーされる要素の数と同じ初期量を備えた、ArrayList クラスの新しいインスタンスを初期化します。

ArrayList(Int32)

空で、指定した初期量を備えた、ArrayList クラスの新しいインスタンスを初期化します。

プロパティ

Capacity

ArrayList に格納できる要素の数を取得または設定します。

Count

ArrayList に実際に含まれる要素の数を取得します。

IsFixedSize

ArrayList が固定サイズかどうかを示す値を取得します。

IsReadOnly

ArrayList が読み取り専用かどうかを示す値を取得します。

IsSynchronized

ArrayList へのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。

Item[Int32]

指定したインデックスにある要素を取得または設定します。

SyncRoot

ArrayList へのアクセスを同期するために使用できるオブジェクトを取得します。

メソッド

Adapter(IList)

特定の IList に関する ArrayList ラッパーを作成します。

Add(Object)

ArrayList の末尾にオブジェクトを追加します。

AddRange(ICollection)

ICollection の要素を ArrayList の末尾に追加します。

BinarySearch(Int32, Int32, Object, IComparer)

指定した比較子を使用して、並べ替えられた要素の ArrayList の 1 つの要素の範囲を検索し、その要素の 0 から始まるインデックスを返します。

BinarySearch(Object)

既定の比較子を使用して、並べ替えられた要素の ArrayList 全体を検索し、その要素の 0 から始まるインデックスを返します。

BinarySearch(Object, IComparer)

指定した比較子を使用して、並べ替えられた要素の ArrayList 全体を検索し、その要素の 0 から始まるインデックスを返します。

Clear()

ArrayList からすべての要素を削除します。

Clone()

ArrayList の簡易コピーを作成します。

Contains(Object)

ある要素が ArrayList 内に存在するかどうかを判断します。

CopyTo(Array)

ArrayList 全体を互換性のある 1 次元の Array にコピーします。コピー操作は、コピー先の配列の先頭から始まります。

CopyTo(Array, Int32)

ArrayList 全体を互換性のある 1 次元の Array にコピーします。コピー操作は、コピー先の配列の指定したインデックスから始まります。

CopyTo(Int32, Array, Int32, Int32)

要素の範囲を ArrayList から互換性のある 1 次元の Array にコピーします。コピー操作は、コピー先の配列の指定したインデックスから始まります。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
FixedSize(ArrayList)

固定サイズの ArrayList ラッパーを返します。

FixedSize(IList)

固定サイズの IList ラッパーを返します。

GetEnumerator()

全体の ArrayList の列挙子を返します。

GetEnumerator(Int32, Int32)

ArrayList 内の要素の範囲の列挙子を返します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetRange(Int32, Int32)

元の ArrayList 内の要素のサブセットを表す ArrayList を返します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
IndexOf(Object)

指定した Object を検索し、ArrayList 全体内で最初に見つかった位置の 0 から始まるインデックスを返します。

IndexOf(Object, Int32)

指定した Object を検索し、指定したインデックスから最後の要素までの ArrayList 内の要素の範囲内で最初に出現する位置の 0 から始まるインデックス番号を返します。

IndexOf(Object, Int32, Int32)

指定した Object を検索し、指定したインデックスから始まって指定した数の要素を格納する ArrayList 内の要素の範囲内で最初に出現する位置の 0 から始まるインデックス番号を返します。

Insert(Int32, Object)

ArrayList 内の指定したインデックスの位置に要素を挿入します。

InsertRange(Int32, ICollection)

コレクションの要素を ArrayList 内の指定したインデックスの位置に挿入します。

LastIndexOf(Object)

指定した Object を検索し、ArrayList 全体で最後に見つかった位置の 0 から始まるインデックスを返します。

LastIndexOf(Object, Int32)

指定した Object を検索し、最初の要素から、指定したインデックスまでの ArrayList 内の要素の範囲内で最後に出現する位置の 0 から始まるインデックス番号を返します。

LastIndexOf(Object, Int32, Int32)

指定した Object を検索し、指定した数の要素を含み、かつ指定したインデックスで終了する ArrayList 内の要素の範囲内で最後に出現する位置の 0 から始まるインデックス番号を返します。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ReadOnly(ArrayList)

読み取り専用 ArrayList ラッパーを返します。

ReadOnly(IList)

読み取り専用 IList ラッパーを返します。

Remove(Object)

特定のオブジェクトが ArrayList 内にあるときに、最初に出現したものを削除します。

RemoveAt(Int32)

ArrayList の指定したインデックスにある要素を削除します。

RemoveRange(Int32, Int32)

ArrayList から要素の範囲を削除します。

Repeat(Object, Int32)

指定した値のコピーである要素を持つ ArrayList を返します。

Reverse()

ArrayList 全体の要素の順序を反転させます。

Reverse(Int32, Int32)

指定した範囲の要素の順序を反転させます。

SetRange(Int32, ICollection)

コレクションの要素を ArrayList 内の要素の範囲にコピーします。

Sort()

ArrayList 全体で要素を並べ替えます。

Sort(IComparer)

指定した比較子を使用して、ArrayList 全体内の要素を並べ替えます。

Sort(Int32, Int32, IComparer)

指定した比較子を使用して、ArrayList 内の要素の範囲内の要素を並べ替えます。

Synchronized(ArrayList)

同期されている (スレッド セーフな) ArrayList ラッパーを返します。

Synchronized(IList)

同期されている (スレッド セーフな) IList ラッパーを返します。

ToArray()

ArrayList の要素を新しい Object 配列にコピーします。

ToArray(Type)

ArrayList の要素を、指定した要素型の新しい配列にコピーします。

ToString()

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

(継承元 Object)
TrimToSize()

容量を ArrayList 内にある実際の要素数に設定します。

拡張メソッド

Cast<TResult>(IEnumerable)

IEnumerable の要素を、指定した型にキャストします。

OfType<TResult>(IEnumerable)

指定された型に基づいて IEnumerable の要素をフィルター処理します。

AsParallel(IEnumerable)

クエリの並列化を有効にします。

AsQueryable(IEnumerable)

IEnumerableIQueryable に変換します。

適用対象

スレッド セーフ

パブリック静的 (Visual Basic ではShared) なこの型のメンバーはスレッド セーフです インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

は、 ArrayList コレクションが変更されていない限り、複数のリーダーを同時にサポートできます。 のスレッドセーフを保証するには、 ArrayList メソッドによって返されるラッパーを使用してすべての操作を行う必要があり Synchronized(IList) ます。

コレクションの列挙処理は、本質的にスレッドセーフな処理ではありません。 コレクションが同期されていても、他のスレッドがコレクションを変更する場合があり、このときは列挙子から例外がスローされます。 列挙処理を確実にスレッド セーフに行うには、列挙中にコレクションをロックするか、他のスレッドによって行われた変更によってスローされる例外をキャッチします。

こちらもご覧ください