ArrayList ArrayList ArrayList ArrayList Class

定義

必要に応じてサイズが動的に拡大される配列を使用して IList インターフェイスを実装します。Implements the IList interface using an array whose size is dynamically increased as required.

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

次の例では、ArrayList を作成および初期化する方法と、その値を表示する方法を示します。The following example shows how to create and initialize an ArrayList and how to display its values.

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 クラスを使用しないことをお勧めします。We don't recommend that you use the ArrayList class for new development. 代わりに、汎用 List<T> クラスを使用することをお勧めします。Instead, we recommend that you use the generic List<T> class. @No__t 0 クラスは、オブジェクトの異種コレクションを保持するように設計されています。The ArrayList class is designed to hold heterogeneous collections of objects. ただし、常に最適なパフォーマンスが得られるとは限りません。However, it does not always offer the best performance. 代わりに、次のことをお勧めします。Instead, we recommend the following:

  • オブジェクトの異種コレクションの場合は、List<Object> (in C#) または @no__t (Visual Basic) 型を使用します。For a heterogeneous collection of objects, use the List<Object> (in C#) or List(Of Object) (in Visual Basic) type.
  • オブジェクトの同種コレクションの場合は、List<T> クラスを使用します。For a homogeneous collection of objects, use the List<T> class.
    これらのクラスの相対的なパフォーマンスの詳細については、List<T> リファレンストピックの「パフォーマンスに関する考慮事項」を参照してください。See Performance Considerations in the List<T> reference topic for a discussion of the relative performance of these classes. 非ジェネリックコレクション型ではなく、ジェネリックの使用に関する一般的な情報については、「GitHub で非ジェネリックコレクションを使用することはできません。」を参照してください。See Non-generic collections shouldn't be used on GitHub for general information on the use of generic instead of non-generic collection types.

@No__t-0 は、並べ替えが保証されていません。The ArrayList is not guaranteed to be sorted. @No__t 3 を並べ替える必要がある操作 (BinarySearch など) を実行する前に Sort メソッドを呼び出して @no__t 0 を並べ替える必要があります。You must sort the ArrayList by calling its Sort method prior to performing operations (such as BinarySearch) that require the ArrayList to be sorted. 新しい要素が追加されたときに自動的に並べ替えられるコレクションを維持するために、SortedSet<T> クラスを使用できます。To maintain a collection that is automatically sorted as new elements are added, you can use the SortedSet<T> class.

@No__t-0 の容量は、@no__t が保持できる要素の数です。The capacity of an ArrayList is the number of elements the ArrayList can hold. 要素が @no__t 0 に追加されると、再割り当てによって必要に応じて容量が自動的に増加します。As elements are added to an ArrayList, the capacity is automatically increased as required through reallocation. 容量は、@no__t 0 を呼び出すか、Capacity プロパティを明示的に設定することによって減らすことができます。The capacity can be decreased by calling TrimToSize or by setting the Capacity property explicitly.

.NET Framework のみ: 非常に大きな @no__t 0 のオブジェクトの場合、 <gcAllowVeryLargeObjects>構成要素の enabled 属性を実行時環境の true に設定することによって、64ビットシステム上の最大容量を20億の要素に増やすことができます。.NET Framework only: For very large ArrayList objects, you can increase the maximum capacity to 2 billion elements on a 64-bit system by setting the enabled attribute of the <gcAllowVeryLargeObjects> configuration element to true in the run-time environment.

このコレクションの要素には、整数インデックスを使用してアクセスできます。Elements in this collection can be accessed using an integer index. このコレクションのインデックスは0から始まります。Indexes in this collection are zero-based.

@No__t-0 コレクションは、有効な値として null を受け入れます。The ArrayList collection accepts null as a valid value. また、重複する要素も許可します。It also allows duplicate elements.

@No__t 0 のコレクションの要素としての多次元配列の使用はサポートされていません。Using multidimensional arrays as elements in an ArrayList collection is not supported.

コンストラクター

ArrayList() ArrayList() ArrayList() ArrayList()

空で、既定の初期量を備えた、ArrayList クラスの新しいインスタンスを初期化します。Initializes a new instance of the ArrayList class that is empty and has the default initial capacity.

ArrayList(ICollection) ArrayList(ICollection) ArrayList(ICollection) ArrayList(ICollection)

指定したコレクションからコピーした要素を格納し、コピーされる要素の数と同じ初期量を備えた、ArrayList クラスの新しいインスタンスを初期化します。Initializes a new instance of the ArrayList class that contains elements copied from the specified collection and that has the same initial capacity as the number of elements copied.

ArrayList(Int32) ArrayList(Int32) ArrayList(Int32) ArrayList(Int32)

空で、指定した初期量を備えた、ArrayList クラスの新しいインスタンスを初期化します。Initializes a new instance of the ArrayList class that is empty and has the specified initial capacity.

プロパティ

Capacity Capacity Capacity Capacity

ArrayList に格納できる要素の数を取得または設定します。Gets or sets the number of elements that the ArrayList can contain.

Count Count Count Count

ArrayList に実際に含まれる要素の数を取得します。Gets the number of elements actually contained in the ArrayList.

IsFixedSize IsFixedSize IsFixedSize IsFixedSize

ArrayList が固定サイズかどうかを示す値を取得します。Gets a value indicating whether the ArrayList has a fixed size.

IsReadOnly IsReadOnly IsReadOnly IsReadOnly

ArrayList が読み取り専用かどうかを示す値を取得します。Gets a value indicating whether the ArrayList is read-only.

IsSynchronized IsSynchronized IsSynchronized IsSynchronized

ArrayList へのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。Gets a value indicating whether access to the ArrayList is synchronized (thread safe).

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

指定したインデックスにある要素を取得または設定します。Gets or sets the element at the specified index.

SyncRoot SyncRoot SyncRoot SyncRoot

ArrayList へのアクセスを同期するために使用できるオブジェクトを取得します。Gets an object that can be used to synchronize access to the ArrayList.

メソッド

Adapter(IList) Adapter(IList) Adapter(IList) Adapter(IList)

特定の IList に関する ArrayList ラッパーを作成します。Creates an ArrayList wrapper for a specific IList.

Add(Object) Add(Object) Add(Object) Add(Object)

ArrayList の末尾にオブジェクトを追加します。Adds an object to the end of the ArrayList.

AddRange(ICollection) AddRange(ICollection) AddRange(ICollection) AddRange(ICollection)

ICollection の要素を ArrayList の末尾に追加します。Adds the elements of an ICollection to the end of the ArrayList.

BinarySearch(Int32, Int32, Object, IComparer) BinarySearch(Int32, Int32, Object, IComparer) BinarySearch(Int32, Int32, Object, IComparer) BinarySearch(Int32, Int32, Object, IComparer)

指定した比較子を使用して、並べ替えられた要素の ArrayList の 1 つの要素の範囲を検索し、その要素の 0 から始まるインデックスを返します。Searches a range of elements in the sorted ArrayList for an element using the specified comparer and returns the zero-based index of the element.

BinarySearch(Object) BinarySearch(Object) BinarySearch(Object) BinarySearch(Object)

既定の比較子を使用して、並べ替えられた要素の ArrayList 全体を検索し、その要素の 0 から始まるインデックスを返します。Searches the entire sorted ArrayList for an element using the default comparer and returns the zero-based index of the element.

BinarySearch(Object, IComparer) BinarySearch(Object, IComparer) BinarySearch(Object, IComparer) BinarySearch(Object, IComparer)

指定した比較子を使用して、並べ替えられた要素の ArrayList 全体を検索し、その要素の 0 から始まるインデックスを返します。Searches the entire sorted ArrayList for an element using the specified comparer and returns the zero-based index of the element.

Clear() Clear() Clear() Clear()

ArrayList からすべての要素を削除します。Removes all elements from the ArrayList.

Clone() Clone() Clone() Clone()

ArrayList の簡易コピーを作成します。Creates a shallow copy of the ArrayList.

Contains(Object) Contains(Object) Contains(Object) Contains(Object)

ある要素が ArrayList 内に存在するかどうかを判断します。Determines whether an element is in the ArrayList.

CopyTo(Array) CopyTo(Array) CopyTo(Array) CopyTo(Array)

ArrayList 全体を互換性のある 1 次元の Array にコピーします。コピー操作は、コピー先の配列の先頭から始まります。Copies the entire ArrayList to a compatible one-dimensional Array, starting at the beginning of the target array.

CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32)

ArrayList 全体を、互換性のある 1 次元の Array にコピーします。コピー操作は、コピー先の配列の指定したインデックスから始まる部分に行います。Copies the entire ArrayList to a compatible one-dimensional Array, starting at the specified index of the target array.

CopyTo(Int32, Array, Int32, Int32) CopyTo(Int32, Array, Int32, Int32) CopyTo(Int32, Array, Int32, Int32) CopyTo(Int32, Array, Int32, Int32)

要素の範囲を ArrayList から互換性のある 1 次元の Array にコピーします。コピー操作は、コピー先の配列の指定したインデックスから始まります。Copies a range of elements from the ArrayList to a compatible one-dimensional Array, starting at the specified index of the target array.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
FixedSize(ArrayList) FixedSize(ArrayList) FixedSize(ArrayList) FixedSize(ArrayList)

固定サイズの ArrayList ラッパーを返します。Returns an ArrayList wrapper with a fixed size.

FixedSize(IList) FixedSize(IList) FixedSize(IList) FixedSize(IList)

固定サイズの IList ラッパーを返します。Returns an IList wrapper with a fixed size.

GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

全体の ArrayList の列挙子を返します。Returns an enumerator for the entire ArrayList.

GetEnumerator(Int32, Int32) GetEnumerator(Int32, Int32) GetEnumerator(Int32, Int32) GetEnumerator(Int32, Int32)

ArrayList 内の要素の範囲の列挙子を返します。Returns an enumerator for a range of elements in the ArrayList.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetRange(Int32, Int32) GetRange(Int32, Int32) GetRange(Int32, Int32) GetRange(Int32, Int32)

元の ArrayList 内の要素のサブセットを表す ArrayList を返します。Returns an ArrayList which represents a subset of the elements in the source ArrayList.

GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
IndexOf(Object) IndexOf(Object) IndexOf(Object) IndexOf(Object)

指定した Object を検索し、ArrayList 全体内で最初に見つかった位置の 0 から始まるインデックスを返します。Searches for the specified Object and returns the zero-based index of the first occurrence within the entire ArrayList.

IndexOf(Object, Int32) IndexOf(Object, Int32) IndexOf(Object, Int32) IndexOf(Object, Int32)

指定した Object を検索し、指定したインデックスから最後の要素までの ArrayList 内の要素の範囲内で最初に出現する位置の 0 から始まるインデックス番号を返します。Searches for the specified Object and returns the zero-based index of the first occurrence within the range of elements in the ArrayList that extends from the specified index to the last element.

IndexOf(Object, Int32, Int32) IndexOf(Object, Int32, Int32) IndexOf(Object, Int32, Int32) IndexOf(Object, Int32, Int32)

指定した Object を検索し、指定したインデックスから始まって指定した数の要素を格納する ArrayList 内の要素の範囲内で最初に出現する位置の 0 から始まるインデックス番号を返します。Searches for the specified Object and returns the zero-based index of the first occurrence within the range of elements in the ArrayList that starts at the specified index and contains the specified number of elements.

Insert(Int32, Object) Insert(Int32, Object) Insert(Int32, Object) Insert(Int32, Object)

ArrayList 内の指定したインデックスの位置に要素を挿入します。Inserts an element into the ArrayList at the specified index.

InsertRange(Int32, ICollection) InsertRange(Int32, ICollection) InsertRange(Int32, ICollection) InsertRange(Int32, ICollection)

コレクションの要素を ArrayList 内の指定したインデックスの位置に挿入します。Inserts the elements of a collection into the ArrayList at the specified index.

LastIndexOf(Object) LastIndexOf(Object) LastIndexOf(Object) LastIndexOf(Object)

指定した Object を検索し、ArrayList 全体で最後に見つかった位置の 0 から始まるインデックスを返します。Searches for the specified Object and returns the zero-based index of the last occurrence within the entire ArrayList.

LastIndexOf(Object, Int32) LastIndexOf(Object, Int32) LastIndexOf(Object, Int32) LastIndexOf(Object, Int32)

指定した Object を検索し、最初の要素から、指定したインデックスまでの ArrayList 内の要素の範囲内で最後に出現する位置の 0 から始まるインデックス番号を返します。Searches for the specified Object and returns the zero-based index of the last occurrence within the range of elements in the ArrayList that extends from the first element to the specified index.

LastIndexOf(Object, Int32, Int32) LastIndexOf(Object, Int32, Int32) LastIndexOf(Object, Int32, Int32) LastIndexOf(Object, Int32, Int32)

指定した Object を検索し、指定した数の要素を含み、かつ指定したインデックスで終了する ArrayList 内の要素の範囲内で最後に出現する位置の 0 から始まるインデックス番号を返します。Searches for the specified Object and returns the zero-based index of the last occurrence within the range of elements in the ArrayList that contains the specified number of elements and ends at the specified index.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ReadOnly(ArrayList) ReadOnly(ArrayList) ReadOnly(ArrayList) ReadOnly(ArrayList)

読み取り専用 ArrayList ラッパーを返します。Returns a read-only ArrayList wrapper.

ReadOnly(IList) ReadOnly(IList) ReadOnly(IList) ReadOnly(IList)

読み取り専用 IList ラッパーを返します。Returns a read-only IList wrapper.

Remove(Object) Remove(Object) Remove(Object) Remove(Object)

特定のオブジェクトが ArrayList 内にあるときに、最初に出現したものを削除します。Removes the first occurrence of a specific object from the ArrayList.

RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32)

ArrayList の指定したインデックスにある要素を削除します。Removes the element at the specified index of the ArrayList.

RemoveRange(Int32, Int32) RemoveRange(Int32, Int32) RemoveRange(Int32, Int32) RemoveRange(Int32, Int32)

ArrayList から要素の範囲を削除します。Removes a range of elements from the ArrayList.

Repeat(Object, Int32) Repeat(Object, Int32) Repeat(Object, Int32) Repeat(Object, Int32)

指定した値のコピーである要素を持つ ArrayList を返します。Returns an ArrayList whose elements are copies of the specified value.

Reverse() Reverse() Reverse() Reverse()

ArrayList 全体の要素の順序を反転させます。Reverses the order of the elements in the entire ArrayList.

Reverse(Int32, Int32) Reverse(Int32, Int32) Reverse(Int32, Int32) Reverse(Int32, Int32)

指定した範囲の要素の順序を反転させます。Reverses the order of the elements in the specified range.

SetRange(Int32, ICollection) SetRange(Int32, ICollection) SetRange(Int32, ICollection) SetRange(Int32, ICollection)

コレクションの要素を ArrayList 内の要素の範囲にコピーします。Copies the elements of a collection over a range of elements in the ArrayList.

Sort() Sort() Sort() Sort()

ArrayList 全体で要素を並べ替えます。Sorts the elements in the entire ArrayList.

Sort(IComparer) Sort(IComparer) Sort(IComparer) Sort(IComparer)

指定した比較子を使用して、ArrayList 全体内の要素を並べ替えます。Sorts the elements in the entire ArrayList using the specified comparer.

Sort(Int32, Int32, IComparer) Sort(Int32, Int32, IComparer) Sort(Int32, Int32, IComparer) Sort(Int32, Int32, IComparer)

指定した比較子を使用して、ArrayList 内の要素の範囲内の要素を並べ替えます。Sorts the elements in a range of elements in ArrayList using the specified comparer.

Synchronized(ArrayList) Synchronized(ArrayList) Synchronized(ArrayList) Synchronized(ArrayList)

同期されている (スレッド セーフな) ArrayList ラッパーを返します。Returns an ArrayList wrapper that is synchronized (thread safe).

Synchronized(IList) Synchronized(IList) Synchronized(IList) Synchronized(IList)

同期されている (スレッド セーフな) IList ラッパーを返します。Returns an IList wrapper that is synchronized (thread safe).

ToArray() ToArray() ToArray() ToArray()

ArrayList の要素を新しい Object 配列にコピーします。Copies the elements of the ArrayList to a new Object array.

ToArray(Type) ToArray(Type) ToArray(Type) ToArray(Type)

ArrayList の要素を、指定した要素型の新しい配列にコピーします。Copies the elements of the ArrayList to a new array of the specified element type.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)
TrimToSize() TrimToSize() TrimToSize() TrimToSize()

容量を ArrayList 内にある実際の要素数に設定します。Sets the capacity to the actual number of elements in the ArrayList.

拡張メソッド

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

IEnumerable の要素を、指定した型にキャストします。Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

指定された型に基づいて IEnumerable の要素をフィルター処理します。Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

クエリの並列化を有効にします。Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

IEnumerableIQueryable に変換します。Converts an IEnumerable to an IQueryable.

適用対象

スレッド セーフ

パブリック静的 (Visual Basic ではShared) なこの型のメンバーはスレッド セーフですPublic static (Shared in Visual Basic) members of this type are thread safe. インスタンス メンバーの場合は、スレッド セーフであるとは限りません。Any instance members are not guaranteed to be thread safe.

コレクションが変更されていない限り、@no__t 0 は複数のリーダーを同時にサポートできます。An ArrayList can support multiple readers concurrently, as long as the collection is not modified. @No__t 0 のスレッドセーフを保証するには、すべての操作を、Synchronized(IList) メソッドによって返されるラッパーを介して行う必要があります。To guarantee the thread safety of the ArrayList, all operations must be done through the wrapper returned by the Synchronized(IList) method.

コレクションの列挙は、本質的にスレッド セーフなプロシージャではありません。Enumerating through a collection is intrinsically not a thread-safe procedure. コレクションの同期がとられている場合でも、別のスレッドによってそのコレクションを変更できるため、変更の結果として列挙子は例外をスローします。Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. 列挙処理を確実にスレッド セーフに行うには、列挙中にコレクションをロックするか、他のスレッドによって行われた変更によってスローされる例外をキャッチします。To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.

こちらもご覧ください