ArrayList ArrayList ArrayList ArrayList Class

Definicja

Implementuje interfejs IList przy użyciu tablicy, której rozmiar został dynamicznie zwiększony zgodnie z potrzebami.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
Dziedziczenie
ArrayListArrayListArrayListArrayList
Pochodne
Atrybuty
Implementuje

Przykłady

Poniższy przykład pokazuje, jak utworzyć i zainicjować ArrayList i jak wyświetlić jego wartości.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   !

Uwagi

Ważne

Nie zalecamy używania klasy ArrayList w celu tworzenia nowych rozwiązań.We don't recommend that you use the ArrayList class for new development. Zamiast tego zaleca się użycie klasy generycznej List<T>.Instead, we recommend that you use the generic List<T> class. Klasa ArrayList jest przeznaczona do przechowywania heterogenicznych kolekcji obiektów.The ArrayList class is designed to hold heterogeneous collections of objects. Jednak nie zawsze oferuje najlepszą wydajność.However, it does not always offer the best performance. Zamiast tego zalecamy następujące czynności:Instead, we recommend the following:

  • W przypadku heterogenicznej kolekcji obiektów należy użyć typu List<Object> (in C#) lub List(Of Object) (w Visual Basic).For a heterogeneous collection of objects, use the List<Object> (in C#) or List(Of Object) (in Visual Basic) type.
  • W przypadku jednorodnej kolekcji obiektów należy użyć klasy List<T>.For a homogeneous collection of objects, use the List<T> class.
    Zapoznaj się z zagadnieniami dotyczącymi wydajności w temacie referencyjnym List<T> w celu omówienia względnej wydajności tych klas.See Performance Considerations in the List<T> reference topic for a discussion of the relative performance of these classes. Aby uzyskać ogólne informacje na temat użycia generycznego, a nie ogólnego typu kolekcji, w usłudze GitHub należy zapoznać się z nieogólnymi kolekcjami .See Non-generic collections shouldn't be used on GitHub for general information on the use of generic instead of non-generic collection types.

Nie jest gwarantowane sortowanie ArrayList.The ArrayList is not guaranteed to be sorted. Należy posortować ArrayList, wywołując metodę Sort przed wykonaniem operacji (takich jak BinarySearch), które wymagają sortowania 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. Aby zachować kolekcję, która jest automatycznie sortowana w miarę dodawania nowych elementów, można użyć klasy SortedSet<T>.To maintain a collection that is automatically sorted as new elements are added, you can use the SortedSet<T> class.

Pojemność ArrayList to liczba elementów, które mogą być przechowywane w ArrayList.The capacity of an ArrayList is the number of elements the ArrayList can hold. Po dodaniu elementów do ArrayList pojemność jest automatycznie zwiększana zgodnie z wymaganiami ponownej alokacji.As elements are added to an ArrayList, the capacity is automatically increased as required through reallocation. Wydajność można zmniejszyć, wywołując TrimToSize lub ustawiając właściwość Capacity jawnie.The capacity can be decreased by calling TrimToSize or by setting the Capacity property explicitly.

Tylko .NET Framework: Dla bardzo dużych obiektów ArrayList można zwiększyć maksymalną pojemność do 2 000 000 000 elementów w systemie 64-bitowym przez ustawienie atrybutu enabled @no__t elementu konfiguracji <gcAllowVeryLargeObjects> w środowisku czasu wykonywania..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.

Dostęp do elementów w tej kolekcji można uzyskać przy użyciu indeksu liczb całkowitych.Elements in this collection can be accessed using an integer index. Indeksy w tej kolekcji są oparte na zero.Indexes in this collection are zero-based.

Kolekcja ArrayList akceptuje null jako prawidłową wartość.The ArrayList collection accepts null as a valid value. Umożliwia również duplikowanie elementów.It also allows duplicate elements.

Używanie tablic wielowymiarowych jako elementów w kolekcji ArrayList nie jest obsługiwane.Using multidimensional arrays as elements in an ArrayList collection is not supported.

Konstruktory

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

Inicjuje nowe wystąpienie klasy ArrayList, która jest pusta i ma domyślną pojemność początkową.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)

Inicjuje nowe wystąpienie klasy ArrayList zawierające elementy skopiowane z określonej kolekcji, które mają taką samą pojemność początkową jak liczba skopiowanych elementów.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)

Inicjuje nowe wystąpienie klasy ArrayList, która jest pusta i ma określoną pojemność początkową.Initializes a new instance of the ArrayList class that is empty and has the specified initial capacity.

Właściwości

Capacity Capacity Capacity Capacity

Pobiera lub ustawia liczbę elementów, które może zawierać ArrayList.Gets or sets the number of elements that the ArrayList can contain.

Count Count Count Count

Pobiera liczbę elementów faktycznie zawartych w ArrayList.Gets the number of elements actually contained in the ArrayList.

IsFixedSize IsFixedSize IsFixedSize IsFixedSize

Pobiera wartość wskazującą, czy ArrayList ma stały rozmiar.Gets a value indicating whether the ArrayList has a fixed size.

IsReadOnly IsReadOnly IsReadOnly IsReadOnly

Pobiera wartość wskazującą, czy ArrayList jest tylko do odczytu.Gets a value indicating whether the ArrayList is read-only.

IsSynchronized IsSynchronized IsSynchronized IsSynchronized

Pobiera wartość wskazującą, czy dostęp do ArrayList jest synchronizowany (bezpieczny wątkowo).Gets a value indicating whether access to the ArrayList is synchronized (thread safe).

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

Pobieranie lub konfigurowanie elementów pod określonym indeksem.Gets or sets the element at the specified index.

SyncRoot SyncRoot SyncRoot SyncRoot

Pobiera obiekt, którego można użyć do synchronizowania dostępu do ArrayList.Gets an object that can be used to synchronize access to the ArrayList.

Metody

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

Tworzy otokę ArrayList dla określonego IList.Creates an ArrayList wrapper for a specific IList.

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

Dodaje obiekt na końcu ArrayList.Adds an object to the end of the ArrayList.

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

Dodaje elementy ICollection do końca 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)

Przeszukuje zakres elementów w sortowanej ArrayList dla elementu przy użyciu określonej funkcji porównującej i zwraca indeks (liczony od zera) elementu.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)

Wyszukuje cały posortowaną ArrayList dla elementu przy użyciu domyślnej funkcji porównującej i zwraca indeks (liczony od zera) elementu.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)

Wyszukuje cały posortowaną ArrayList dla elementu przy użyciu określonej funkcji porównującej i zwraca indeks (liczony od zera) elementu.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()

Usuwa wszystkie elementy z ArrayList.Removes all elements from the ArrayList.

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

Tworzy skróconą kopię ArrayList.Creates a shallow copy of the ArrayList.

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

Określa, czy element znajduje się w ArrayList.Determines whether an element is in the ArrayList.

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

Kopiuje cały ArrayList do zgodnego jednowymiarowego Array, rozpoczynając od początku tablicy docelowej.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)

Kopiuje cały ArrayList do zgodnego jednowymiarowego Array, rozpoczynając od określonego indeksu tablicy docelowej.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)

Kopiuje zakres elementów z ArrayList do zgodnego jednowymiarowego Array, rozpoczynając od określonego indeksu tablicy docelowej.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)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

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

Zwraca otokę ArrayList o stałym rozmiarze.Returns an ArrayList wrapper with a fixed size.

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

Zwraca otokę IList o stałym rozmiarze.Returns an IList wrapper with a fixed size.

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

Zwraca moduł wyliczający dla całego ArrayList.Returns an enumerator for the entire ArrayList.

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

Zwraca moduł wyliczający dla zakresu elementów w ArrayList.Returns an enumerator for a range of elements in the ArrayList.

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

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

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

Zwraca ArrayList reprezentujący podzestaw elementów w źródłowym ArrayList.Returns an ArrayList which represents a subset of the elements in the source ArrayList.

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

Type Pobiera bieżące wystąpienie.Gets the Type of the current instance.

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

Wyszukuje określony Object i zwraca indeks (liczony od zera) pierwszego wystąpienia w całym ArrayList.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)

Wyszukuje określony Object i zwraca indeks (liczony od zera) pierwszego wystąpienia w zakresie elementów w ArrayList, który rozciąga się od określonego indeksu do ostatniego elementu.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)

Wyszukuje określony Object i zwraca indeks (liczony od zera) pierwszego wystąpienia w zakresie elementów w ArrayList, który zaczyna się od określonego indeksu i zawiera określoną liczbę elementów.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)

Wstawia element do ArrayList o określonym indeksie.Inserts an element into the ArrayList at the specified index.

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

Wstawia elementy kolekcji do ArrayList o określonym indeksie.Inserts the elements of a collection into the ArrayList at the specified index.

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

Wyszukuje określony Object i zwraca indeks (liczony od zera) ostatniego wystąpienia w całym ArrayList.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)

Wyszukuje określony Object i zwraca indeks (liczony od zera) ostatniego wystąpienia w zakresie elementów w ArrayList, który rozciąga się od pierwszego elementu do określonego indeksu.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)

Wyszukuje określony Object i zwraca indeks (liczony od zera) ostatniego wystąpienia w zakresie elementów w ArrayList, który zawiera określoną liczbę elementów i kończą się określonym indeksem.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()

Tworzy skróconą kopię bieżącego Objectelementu.Creates a shallow copy of the current Object.

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

Zwraca otokę ArrayList tylko do odczytu.Returns a read-only ArrayList wrapper.

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

Zwraca otokę IList tylko do odczytu.Returns a read-only IList wrapper.

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

Usuwa pierwsze wystąpienie określonego obiektu z ArrayList.Removes the first occurrence of a specific object from the ArrayList.

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

Usuwa element z określonym indeksem ArrayList.Removes the element at the specified index of the ArrayList.

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

Usuwa zakres elementów z ArrayList.Removes a range of elements from the ArrayList.

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

Zwraca ArrayList, których elementy są kopiami określonej wartości.Returns an ArrayList whose elements are copies of the specified value.

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

Odwraca kolejność elementów w całym ArrayList.Reverses the order of the elements in the entire ArrayList.

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

Odwraca kolejność elementów w określonym zakresie.Reverses the order of the elements in the specified range.

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

Kopiuje elementy kolekcji na zakres elementów w ArrayList.Copies the elements of a collection over a range of elements in the ArrayList.

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

Sortuje elementy w całym ArrayList.Sorts the elements in the entire ArrayList.

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

Sortuje elementy w całym ArrayList przy użyciu określonej funkcji porównującej.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)

Sortuje elementy w zakresie elementów w ArrayList przy użyciu określonej funkcji porównującej.Sorts the elements in a range of elements in ArrayList using the specified comparer.

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

Zwraca otokę ArrayList, która jest synchronizowana (bezpieczny wątkowo).Returns an ArrayList wrapper that is synchronized (thread safe).

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

Zwraca otokę IList, która jest synchronizowana (bezpieczny wątkowo).Returns an IList wrapper that is synchronized (thread safe).

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

Kopiuje elementy ArrayList do nowej tablicy Object.Copies the elements of the ArrayList to a new Object array.

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

Kopiuje elementy ArrayList do nowej tablicy określonego typu elementu.Copies the elements of the ArrayList to a new array of the specified element type.

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

Zwraca ciąg, który reprezentuje bieżący obiekt.Returns a string that represents the current object.

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

Ustawia pojemność na rzeczywistą liczbę elementów w ArrayList.Sets the capacity to the actual number of elements in the ArrayList.

Metody rozszerzania

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

Rzutuje elementy IEnumerable elementu do określonego typu.Casts the elements of an IEnumerable to the specified type.

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

Filtruje elementy IEnumerable w oparciu o określony typ.Filters the elements of an IEnumerable based on a specified type.

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

Włącza przetwarzanie równoległe zapytania.Enables parallelization of a query.

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

IEnumerable KonwertujeIQueryabledo.Converts an IEnumerable to an IQueryable.

Dotyczy

Bezpieczeństwo wątkowe

Publiczne statyczne (Shared w Visual Basic) składowe tego typu są bezpieczne dla wątków.Public static (Shared in Visual Basic) members of this type are thread safe. Wystąpienia elementów członkowskich nie dają gwarancji bezpieczeństwa wątków.Any instance members are not guaranteed to be thread safe.

@No__t-0 może obsługiwać wielu czytników współbieżnie, o ile kolekcja nie jest modyfikowana.An ArrayList can support multiple readers concurrently, as long as the collection is not modified. Aby zagwarantować bezpieczeństwo wątku ArrayList, wszystkie operacje muszą być wykonywane przez otokę zwróconą przez metodę Synchronized(IList).To guarantee the thread safety of the ArrayList, all operations must be done through the wrapper returned by the Synchronized(IList) method.

Wyliczanie w kolekcji nie jest wewnętrznie procedurą odporną na wielowątkowość.Enumerating through a collection is intrinsically not a thread-safe procedure. Nawet gdy kolekcja jest synchronizowana, inne wątki nadal mogą ją modyfikować. Powoduje to zgłaszanie wyjątku przez moduł wyliczający.Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. Aby zagwarantować bezpieczeństwo wątków podczas wyliczania, można zablokować kolekcję podczas całego procesu wyliczania albo rejestrować wyjątki wynikłe ze zmian wprowadzanych przez inne wątków.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.

Zobacz też