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 、オブジェクトの異種コレクションを保持するように設計されています。 ただし、常に最高のパフォーマンスを提供するとは限りません。 代わりに、次のことをお勧めします。

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

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

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

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

このコレクション内の要素には、整数インデックスを使用してアクセスできます。 このコレクション内のインデックスは 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) 実行する必要があります。

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

こちらもご覧ください