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
[System.Serializable]
public class ArrayList : ICloneable, System.Collections.IList
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ArrayList : ICloneable, System.Collections.IList
public class ArrayList : ICloneable, System.Collections.IList
type ArrayList = class
    interface IEnumerable
    interface IList
    interface ICollection
[<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
type ArrayList = class
    interface ICollection
    interface IEnumerable
    interface IList
    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ć ArrayList oraz jak wyświetlić jej wartości.

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

Important

Nie zalecamy używania ArrayList klasy na potrzeby nowego programowania. Zamiast tego zalecamy użycie klasy ogólnej List<T> . Klasa ArrayList została zaprojektowana do przechowywania heterogenicznych kolekcji obiektów. Jednak nie zawsze oferuje najlepszą wydajność. Zamiast tego zalecamy następujące kwestie:

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

Nie ma gwarancji, że ArrayList będzie posortowany. Należy posortować ArrayList przez wywołanie metody Sort 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ć klasy SortedSet<T>.

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

Tylko program .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 czasu wykonywania.

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 akceptuje null jako prawidłową wartość. Umożliwia również zduplikowane elementy.

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

Konstruktory

Nazwa Opis
ArrayList()

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

ArrayList(ICollection)

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

ArrayList(Int32)

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

Właściwości

Nazwa Opis
Capacity

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

Count

Pobiera liczbę elementów w rzeczywistości zawartych w elemecie ArrayList.

IsFixedSize

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

IsReadOnly

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

IsSynchronized

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

Item[Int32]

Pobiera lub ustawia element w określonym indeksie.

SyncRoot

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

Metody

Nazwa Opis
Adapter(IList)

Tworzy otokę ArrayList dla określonego IList.

Add(Object)

Dodaje obiekt na końcu obiektu ArrayList.

AddRange(ICollection)

Dodaje elementy ICollection na końcu ArrayList.

BinarySearch(Int32, Int32, Object, IComparer)

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

BinarySearch(Object, IComparer)

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

BinarySearch(Object)

Wyszukuje całe posortowane ArrayList elementu przy użyciu domyślnego porównywacza i zwraca indeks oparty na zerze elementu.

Clear()

Usuwa wszystkie elementy z elementu ArrayList.

Clone()

Tworzy płytkią kopię obiektu ArrayList.

Contains(Object)

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

CopyTo(Array, Int32)

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

CopyTo(Array)

Kopiuje całą ArrayList do zgodnej jednowymiarowej Array, począwszy od początku tablicy docelowej.

CopyTo(Int32, Array, Int32, Int32)

Kopiuje szereg elementów z ArrayList do zgodnego jednowymiarowego Array, począwszy 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 ArrayList.

GetEnumerator(Int32, Int32)

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

GetHashCode()

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

(Odziedziczone po Object)
GetRange(Int32, Int32)

Zwraca element ArrayList reprezentujący podzbiór elementów w źródle ArrayList.

GetType()

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

(Odziedziczone po Object)
IndexOf(Object, Int32, Int32)

Wyszukuje określony Object i zwraca zerowy indeks pierwszego wystąpienia w zakresie elementów w ArrayList rozpoczynających się od określonego indeksu i zawiera określoną liczbę elementów.

IndexOf(Object, Int32)

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

IndexOf(Object)

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

Insert(Int32, Object)

Wstawia element do ArrayList określonego indeksu.

InsertRange(Int32, ICollection)

Wstawia elementy kolekcji do ArrayList w określonym indeksie.

LastIndexOf(Object, Int32, Int32)

Wyszukuje określony Object i zwraca indeks zerowy ostatniego wystąpienia w zakresie elementów w ArrayList, który zawiera określoną liczbę elementów i kończy się na określonym indeksie.

LastIndexOf(Object, Int32)

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

LastIndexOf(Object)

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

MemberwiseClone()

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

(Odziedziczone po Object)
ReadOnly(ArrayList)

Zwraca otokę tylko do odczytu ArrayList.

ReadOnly(IList)

Zwraca otokę tylko do odczytu IList.

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 szereg elementów z ArrayList.

Repeat(Object, Int32)

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

Reverse()

Odwraca kolejność elementów w całej ArrayList.

Reverse(Int32, Int32)

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

SetRange(Int32, ICollection)

Kopiuje elementy kolekcji na wiele elementów w ArrayList.

Sort()

Sortuje elementy w całym ArrayList.

Sort(IComparer)

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

Sort(Int32, Int32, IComparer)

Sortuje elementy w zakresie elementów w ArrayList przy użyciu określonego porównania.

Synchronized(ArrayList)

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

Synchronized(IList)

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

ToArray()

Kopiuje elementy ArrayList do nowej tablicy Object.

ToArray(Type)

Kopiuje elementy 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 ArrayList.

Metody rozszerzania

Nazwa Opis
AsParallel(IEnumerable)

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

AsQueryable(IEnumerable)

Konwertuje IEnumerable na IQueryable.

Cast<TResult>(IEnumerable)

Rzutuje elementy IEnumerable do określonego typu.

OfType<TResult>(IEnumerable)

Filtruje elementy IEnumerable na podstawie określonego typu.

Dotyczy

Bezpieczeństwo wątkowe

Publiczne statyczne (Shared w Visual Basic) elementy członkowskie tego typu są bezpieczne wątkowo. Członkowie instancji nie mają gwarancji bezpieczeństwa wątkowego.

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

Wyliczanie za pośrednictwem kolekcji nie jest wewnętrznie procedurą bezpieczną wątkowo. Nawet w przypadku synchronizacji kolekcji inne wątki nadal mogą modyfikować kolekcję, co powoduje zgłoszenie wyjątku przez moduł wyliczający. Aby zagwarantować bezpieczeństwo wątków podczas wyliczania, możesz zablokować kolekcję podczas całego wyliczenia lub przechwycić wyjątki wynikające ze zmian wprowadzonych przez inne wątki.

Zobacz też