ArrayList Klasa

Definicja

Implementuje IList interfejs przy użyciu tablicy, której rozmiar jest dynamicznie zwiększany zgodnie z potrzebami.

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
Public Class ArrayList
Implements IList
Public Class ArrayList
Implements ICloneable, IList
Dziedziczenie
ArrayList
Pochodne
Atrybuty
Implementuje

Przykłady

W poniższym przykładzie pokazano, jak utworzyć i zainicjować obiekt ArrayList oraz jak wyświetlić jego wartości.

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 ArrayList klasy do tworzenia nowych aplikacji. Zamiast tego zalecamy użycie klasy ogólnej List<T> . Klasa jest przeznaczona ArrayList do przechowywania heterogenicznych kolekcji obiektów. Jednak nie zawsze zapewnia najlepszą wydajność. Zamiast tego zalecamy wykonanie następujących czynności:

  • W przypadku heterogenicznej kolekcji obiektów użyj List<Object> typu (w języku C#) lub List(Of Object) (w Visual Basic).
  • W przypadku jednorodnej kolekcji obiektów należy użyć List<T> klasy . Zobacz Zagadnienia dotyczące wydajności w List<T> temacie referencyjnym, aby zapoznać się z omówieniem względnej wydajności tych klas. Zobacz Kolekcje nieogólne nie powinny być używane w usłudze GitHub, aby uzyskać ogólne informacje na temat używania typów ogólnych zamiast typów kolekcji innych niż ogólne.

Nie ArrayList ma gwarancji sortowania. Należy posortować metodę ArrayList , wywołując jej Sort metodę przed wykonaniem operacji (takich jak BinarySearch), które wymagają sortowania ArrayList . Aby zachować kolekcję, która jest automatycznie sortowana w miarę dodawania nowych elementów, możesz użyć SortedSet<T> klasy .

Pojemność obiektu ArrayList to liczba elementów, które ArrayList mogą być przechowywane. W miarę ArrayListdodawania elementów do elementu pojemność jest automatycznie zwiększana zgodnie z wymaganiami za pośrednictwem lokalizacji rzeczywistej. Pojemność można zmniejszyć przez wywołanie metody TrimToSize lub jawne Capacity ustawienie właściwości.

tylko .NET Framework: w przypadku bardzo dużych ArrayList obiektów można zwiększyć maksymalną pojemność do 2 miliardów elementów w systemie 64-bitowym, ustawiając enabled atrybut <gcAllowVeryLargeObjects> elementu konfiguracji na true w środowisku uruchomieniowym.

Dostęp do elementów w tej kolekcji można uzyskać przy użyciu indeksu liczb całkowitych. Indeksy w tej kolekcji są oparte na zera.

Kolekcja ArrayList przyjmuje null jako prawidłową wartość. Umożliwia również zduplikowane elementy.

Używanie tablic wielowymiarowych jako elementów w ArrayList kolekcji nie jest obsługiwane.

Konstruktory

ArrayList()

Inicjuje ArrayList nowe wystąpienie klasy, która jest pusta i ma domyślną pojemność początkową.

ArrayList(ICollection)

Inicjuje ArrayList nowe wystąpienie klasy zawierające elementy skopiowane z określonej kolekcji i ma taką samą początkową pojemność jak liczba skopiowanych elementów.

ArrayList(Int32)

Inicjuje ArrayList nowe wystąpienie klasy, która jest pusta i ma określoną początkową pojemność.

Właściwości

Capacity

Pobiera lub ustawia liczbę elementów, które ArrayList mogą zawierać.

Count

Pobiera liczbę elementów faktycznie zawartych w elemecie ArrayList.

IsFixedSize

Pobiera wartość wskazującą, czy ma ArrayList stały rozmiar.

IsReadOnly

Pobiera wartość wskazującą, czy kolekcja ArrayList jest przeznaczona tylko do odczytu.

IsSynchronized

Pobiera wartość wskazującą, czy dostęp do elementu ArrayList jest synchronizowany (bezpieczny wątk).

Item[Int32]

Pobiera lub ustawia element pod określonym indeksem.

SyncRoot

Pobiera obiekt, który może służyć do synchronizowania dostępu do obiektu ArrayList.

Metody

Adapter(IList)

Tworzy otokę ArrayList dla określonego IListelementu .

Add(Object)

Dodaje obiekt na końcu obiektu ArrayList.

AddRange(ICollection)

Dodaje elementy elementu ICollection na końcu obiektu ArrayList.

BinarySearch(Int32, Int32, Object, IComparer)

Wyszukuje zakres elementów w posortowanym ArrayList dla elementu przy użyciu określonego modułu porównującego i zwraca indeks zerowy elementu.

BinarySearch(Object)

Wyszukuje cały posortowany ArrayList element przy użyciu domyślnego porównania i zwraca indeks zerowy elementu.

BinarySearch(Object, IComparer)

Wyszukuje cały posortowany ArrayList element przy użyciu określonego porównania i zwraca indeks zerowy elementu.

Clear()

Usuwa wszystkie elementy z obiektu ArrayList.

Clone()

Tworzy płytkią kopię obiektu ArrayList.

Contains(Object)

Określa, czy element znajduje się w elemecie ArrayList.

CopyTo(Array)

Kopiuje całą ArrayList do zgodnej jednowymiarowej Arraytablicy , zaczynając od początku tablicy docelowej.

CopyTo(Array, Int32)

Kopiuje całość ArrayList do zgodnego jednowymiarowego Arrayobiektu , zaczynając od określonego indeksu tablicy docelowej.

CopyTo(Int32, Array, Int32, Int32)

Kopiuje zakres elementów z ArrayList do zgodnego jednowymiarowego Array, zaczynając od określonego indeksu tablicy docelowej.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
FixedSize(ArrayList)

Zwraca otokę ArrayList o stałym rozmiarze.

FixedSize(IList)

Zwraca otokę IList o stałym rozmiarze.

GetEnumerator()

Zwraca moduł wyliczający dla całego ArrayListelementu .

GetEnumerator(Int32, Int32)

Zwraca moduł wyliczający dla zakresu elementów w obiekcie ArrayList.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetRange(Int32, Int32)

Zwraca element ArrayList , który reprezentuje podzbiór elementów w źródle ArrayList.

GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IndexOf(Object)

Wyszukuje określony Object element i zwraca indeks oparty na zerze pierwszego wystąpienia w całym ArrayListobiekcie .

IndexOf(Object, Int32)

Wyszukuje określony Object i zwraca indeks oparty na zerze pierwszego wystąpienia w zakresie elementów w obiekcie ArrayList , który rozciąga się od określonego indeksu do ostatniego elementu.

IndexOf(Object, Int32, Int32)

Wyszukuje określony Object i zwraca indeks oparty na zerze pierwszego wystąpienia w zakresie elementów w ArrayList indeksie rozpoczynającym się od określonego indeksu i zawiera określoną liczbę elementów.

Insert(Int32, Object)

Wstawia element do określonego indeksu ArrayList .

InsertRange(Int32, ICollection)

Wstawia elementy kolekcji do ArrayList określonego indeksu.

LastIndexOf(Object)

Wyszukuje określony Object element i zwraca indeks zerowy ostatniego wystąpienia w całym ArrayListobiekcie .

LastIndexOf(Object, Int32)

Wyszukuje określony Object element i zwraca indeks oparty na zerze ostatniego wystąpienia w zakresie elementów w obiekcie ArrayList , który rozciąga się od pierwszego elementu do określonego indeksu.

LastIndexOf(Object, Int32, Int32)

Wyszukuje określony Object element i zwraca indeks oparty na zerze ostatniego wystąpienia w zakresie elementów w obiekcie ArrayList zawierającym określoną liczbę elementów i kończy się na określonym indeksie.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ReadOnly(ArrayList)

Zwraca otokę tylko do ArrayList odczytu.

ReadOnly(IList)

Zwraca otokę tylko do IList odczytu.

Remove(Object)

Usuwa pierwsze wystąpienie określonego obiektu z obiektu ArrayList.

RemoveAt(Int32)

Usuwa element w określonym indeksie obiektu ArrayList.

RemoveRange(Int32, Int32)

Usuwa zakres elementów z elementu ArrayList.

Repeat(Object, Int32)

Zwraca element ArrayList , którego elementy są kopiami określonej wartości.

Reverse()

Odwraca kolejność elementów w całym ArrayListobiekcie .

Reverse(Int32, Int32)

Odwraca kolejność elementów w określonym zakresie.

SetRange(Int32, ICollection)

Kopiuje elementy kolekcji w zakresie elementów w obiekcie ArrayList.

Sort()

Sortuje elementy w całości ArrayList.

Sort(IComparer)

Sortuje elementy w całości ArrayList przy użyciu określonego modułu porównującego.

Sort(Int32, Int32, IComparer)

Sortuje elementy w zakresie elementów przy ArrayList użyciu określonego modułu porównującego.

Synchronized(ArrayList)

Zwraca zsynchronizowaną ArrayList otokę (bezpieczne wątki).

Synchronized(IList)

Zwraca zsynchronizowaną IList otokę (bezpieczne wątki).

ToArray()

Kopiuje elementy obiektu ArrayList do nowej Object tablicy.

ToArray(Type)

Kopiuje elementy elementu ArrayList do nowej tablicy określonego typu elementu.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
TrimToSize()

Ustawia pojemność na rzeczywistą liczbę elementów w obiekcie ArrayList.

Metody rozszerzania

Cast<TResult>(IEnumerable)

Rzutuje elementy obiektu IEnumerable na określony typ.

OfType<TResult>(IEnumerable)

Filtruje elementy IEnumerable elementu na podstawie określonego typu.

AsParallel(IEnumerable)

Umożliwia równoległość zapytania.

AsQueryable(IEnumerable)

Konwertuje element IEnumerable na .IQueryable

Dotyczy

Bezpieczeństwo wątkowe

Publiczne statyczne (Shared w Visual Basic) elementy członkowskie tego typu są bezpieczne wątkami. Wystąpienia elementów członkowskich nie dają gwarancji bezpieczeństwa wątków.

Obiekt ArrayList może obsługiwać wiele czytników jednocześnie, o ile kolekcja nie zostanie zmodyfikowana. Aby zagwarantować bezpieczeństwo wątków obiektu ArrayList, należy wykonać wszystkie operacje za pośrednictwem otoki zwróconej przez metodę Synchronized(IList) .

Wyliczanie w kolekcji nie jest wewnętrznie procedurą odporną na wielowątkowość. Nawet gdy kolekcja jest synchronizowana, inne wątki nadal mogą ją modyfikować. Powoduje to zgłaszanie wyjątku przez moduł wyliczający. 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.

Zobacz też