ArrayList Class

정의

필요에 따라 크기가 동적으로 증가하는 배열을 사용하여 IList 인터페이스를 구현합니다. Implements the IList interface using an array whose size is dynamically increased as required.

[System.Runtime.InteropServices.ComVisible(true)]
public class ArrayList : ICloneable, System.Collections.IList
상속
ArrayList
파생
특성
구현

예제

다음 코드 예제를 만들고 초기화 하는 방법을 보여 줍니다는 ArrayList 및 해당 값을 표시 하는 방법입니다.The following code 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
Imports System.Collections
Imports Microsoft.VisualBasic

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 'PrintValues

End Class


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

설명

ArrayList 클래스는 개체의 유형이 다른 컬렉션을 보유 하도록 설계 되었습니다.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> (C#의 경우)의 또는 List(Of Object) (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 the "Performance Considerations" section in the List<T> reference topic for a discussion of the relative performance of these classes.

ArrayList 정렬 되도록 보장 되지 않습니다.The ArrayList is not guaranteed to be sorted. 정렬 해야 합니다는 ArrayList 호출 하 여 해당 Sort 작업을 수행 하기 전에 메서드 (같은 BinarySearch) 해야 하는 ArrayList 정렬할.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.

용량을 ArrayList 요소입니다는 ArrayList 보유할 수 있습니다.The capacity of an ArrayList is the number of elements the ArrayList can hold. 요소에 추가 되는 ArrayList, 용량을 자동으로 증가 하면 재할당을 통해 필요에 따라 합니다.As elements are added to an ArrayList, the capacity is automatically increased as required through reallocation. 호출 하 여 용량을 줄일 수 있습니다 TrimToSize 하거나 설정 하 여는 Capacity 속성이 명시적으로 합니다.The capacity can be decreased by calling TrimToSize or by setting the Capacity property explicitly.

에 대 한 대규모 ArrayList 개체를 설정 하 여 64 비트 시스템에서 2 십억 요소에 최대 용량을 늘릴 수는 enabled 구성 요소의 특성 true 런타임 환경에서.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 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.

합니다 ArrayList 받아들이며 null 유효한 값으로.The ArrayList collection accepts null as a valid value. 또한 중복 요소가 있습니다.It also allows duplicate elements.

다차원 배열에서 요소로 사용 하는 ArrayList 컬렉션은 지원 되지 않습니다.Using multidimensional arrays as elements in an ArrayList collection is not supported.

생성자

ArrayList()

비어 있는 상태에서 기본 초기 용량을 가지는 ArrayList 클래스의 새 인스턴스를 초기화합니다. Initializes a new instance of the ArrayList class that is empty and has the default initial capacity.

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 클래스의 새 인스턴스를 초기화합니다. Initializes a new instance of the ArrayList class that is empty and has the specified initial capacity.

속성

Capacity

ArrayList에 포함될 수 있는 요소의 수를 가져오거나 설정합니다. Gets or sets the number of elements that the ArrayList can contain.

Count

ArrayList에 실제로 포함된 요소의 수를 가져옵니다. Gets the number of elements actually contained in the ArrayList.

IsFixedSize

ArrayList의 크기가 고정되어 있는지를 나타내는 값을 가져옵니다. Gets a value indicating whether the ArrayList has a fixed size.

IsReadOnly

ArrayList가 읽기 전용인지 여부를 나타내는 값을 가져옵니다. Gets a value indicating whether the ArrayList is read-only.

IsSynchronized

ArrayList에 대한 액세스가 동기화되어 스레드로부터 안전하게 보호되는지를 나타내는 값을 가져옵니다. Gets a value indicating whether access to the ArrayList is synchronized (thread safe).

Item[Int32]

지정한 인덱스에 있는 요소를 가져오거나 설정합니다. Gets or sets the element at the specified index.

SyncRoot

ArrayList에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다. Gets an object that can be used to synchronize access to the ArrayList.

메서드

Adapter(IList)

특정 IList에 대해 ArrayList 래퍼를 만듭니다. Creates an ArrayList wrapper for a specific IList.

Add(Object)

개체를 ArrayList의 끝 부분에 추가합니다. Adds an object to the end of the ArrayList.

AddRange(ICollection)

ICollection의 끝에 ArrayList의 요소를 복사합니다. Adds the elements of an ICollection to the end of the ArrayList.

BinarySearch(Int32, Int32, Object, IComparer)

지정된 비교자를 사용하여 정렬된 ArrayList의 요소 범위에서 요소를 검색하고 요소의 인덱스(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)

기본 비교자를 사용하여 정렬된 전체 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)

지정된 비교자를 사용하여 정렬된 전체 ArrayList에서 요소를 검색하고 요소의 인덱스(0부터 시작)를 반환합니다. Searches the entire sorted ArrayList for an element using the specified comparer and returns the zero-based index of the element.

Clear()

ArrayList에서 모든 요소를 제거합니다. Removes all elements from the ArrayList.

Clone()

ArrayList의 부분 복사본을 만듭니다. Creates a shallow copy of the ArrayList.

Contains(Object)

ArrayList에 요소가 있는지 여부를 확인합니다. Determines whether an element is in the ArrayList.

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)

대상 배열의 지정된 인덱스에서 시작하여 전체 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)

대상 배열의 지정한 인덱스에서 시작하여 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)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다. Determines whether the specified object is equal to the current object.

(Inherited from Object)
FixedSize(ArrayList)

고정 크기의 ArrayList 래퍼를 반환합니다. Returns an ArrayList wrapper with a fixed size.

FixedSize(IList)

고정 크기의 IList 래퍼를 반환합니다. Returns an IList wrapper with a fixed size.

GetEnumerator()

전체 ArrayList에 대한 열거자를 반환합니다. Returns an enumerator for the entire ArrayList.

GetEnumerator(Int32, Int32)

ArrayList의 요소 범위에 대한 열거자를 반환합니다. Returns an enumerator for a range of elements in the ArrayList.

GetHashCode()

기본 해시 함수로 작동합니다. Serves as the default hash function.

(Inherited from Object)
GetRange(Int32, Int32)

소스 ArrayList에서 요소의 하위 집합을 나타내는 ArrayList를 반환합니다. Returns an ArrayList which represents a subset of the elements in the source ArrayList.

GetType()

현재 인스턴스의 Type을 가져옵니다. Gets the Type of the current instance.

(Inherited from 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)

지정된 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)

지정된 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)

ArrayList의 지정된 인덱스에 요소를 삽입합니다. Inserts an element into the ArrayList at the specified index.

InsertRange(Int32, ICollection)

ArrayList의 지정된 인덱스에 컬렉션의 요소를 삽입합니다. Inserts the elements of a collection into the ArrayList at the specified index.

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)

지정된 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)

지정된 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()

현재 Object의 단순 복사본을 만듭니다. Creates a shallow copy of the current Object.

(Inherited from Object)
ReadOnly(ArrayList)

읽기 전용 ArrayList 래퍼를 반환합니다. Returns a read-only ArrayList wrapper.

ReadOnly(IList)

읽기 전용 IList 래퍼를 반환합니다. Returns a read-only IList wrapper.

Remove(Object)

ArrayList에서 맨 처음 발견되는 특정 개체를 제거합니다. Removes the first occurrence of a specific object from the ArrayList.

RemoveAt(Int32)

ArrayList의 지정된 인덱스에 있는 요소를 제거합니다. Removes the element at the specified index of the ArrayList.

RemoveRange(Int32, Int32)

ArrayList에서 요소의 범위를 제거합니다. Removes a range of elements from the ArrayList.

Repeat(Object, Int32)

요소가 지정된 값의 복사본인 ArrayList를 반환합니다. Returns an ArrayList whose elements are copies of the specified value.

Reverse()

전체 ArrayList에서 요소의 순서를 반대로 바꿉니다. Reverses the order of the elements in the entire ArrayList.

Reverse(Int32, Int32)

지정된 범위에서 요소의 순서를 반대로 바꿉니다. Reverses the order of the elements in the specified range.

SetRange(Int32, ICollection)

ArrayList의 요소 범위에 대해 컬렉션의 요소를 복사합니다. Copies the elements of a collection over a range of elements in the ArrayList.

Sort()

전체 ArrayList의 요소를 정렬합니다. Sorts the elements in the entire ArrayList.

Sort(IComparer)

지정된 비교자를 사용하여 전체 ArrayList에 있는 요소를 정렬합니다. Sorts the elements in the entire ArrayList using the specified comparer.

Sort(Int32, Int32, IComparer)

지정된 비교자를 사용하여 ArrayList의 요소 범위에 있는 요소를 정렬합니다. Sorts the elements in a range of elements in ArrayList using the specified comparer.

Synchronized(ArrayList)

동기화되어 스레드로부터 안전하게 보호되는 ArrayList 래퍼를 반환합니다. Returns an ArrayList wrapper that is synchronized (thread safe).

Synchronized(IList)

동기화되어 스레드로부터 안전하게 보호되는 IList 래퍼를 반환합니다. Returns an IList wrapper that is synchronized (thread safe).

ToArray()

ArrayList의 요소를 새 Object 배열에 복사합니다. Copies the elements of the ArrayList to a new Object array.

ToArray(Type)

ArrayList의 요소를 지정된 요소 형식의 새 배열에 복사합니다. Copies the elements of the ArrayList to a new array of the specified element type.

ToString()

현재 개체를 나타내는 문자열을 반환합니다. Returns a string that represents the current object.

(Inherited from Object)
TrimToSize()

용량을 ArrayList의 실제 요소 수로 설정합니다. Sets the capacity to the actual number of elements in the ArrayList.

적용 대상

스레드 보안

공용 정적 (Shared Visual Basic의)이 형식의 멤버는 스레드로부터 안전 합니다. Public static (Shared in Visual Basic) members of this type are thread safe. 인터페이스 멤버는 스레드로부터 안전하지 않습니다. Any instance members are not guaranteed to be thread safe. ArrayList 지원할 수 있습니다 여러 판독기 동시에 따라 컬렉션을 수정 되지 않습니다. An ArrayList can support multiple readers concurrently, as long as the collection is not modified. 스레드로부터 안전을 보장 하려면 합니다 ArrayList에서 반환 되는 래퍼를 통해 모든 작업을 완료 해야 합니다 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. 컬렉션이 동기화되어 있을 때 다른 스레드에서 해당 컬렉션을 수정할 수 있으므로 이렇게 되면 열거자에서 예외가 throw됩니다. Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. 열거하는 동안 스레드로부터 안전을 보장하려면 전체 열거를 수행하는 동안 컬렉션을 잠그거나 다른 스레드에서 변경된 내용으로 인해 발생한 예외를 catch하면 됩니다. 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.

추가 정보