Sdílet prostřednictvím


ArrayList Třída

Definice

Implementuje IList rozhraní pomocí pole, jehož velikost se dynamicky zvyšuje podle potřeby.

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
Dědičnost
ArrayList
Odvozené
Atributy
Implementuje

Příklady

Následující příklad ukazuje, jak vytvořit a inicializovat objekt ArrayList a jak zobrazit jeho hodnoty.

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   !

Poznámky

Důležité

Nedoporučujeme používat ArrayList třídu pro nový vývoj. Místo toho doporučujeme použít obecnou List<T> třídu. Třída ArrayList je navržena tak, aby uchovává heterogenní kolekce objektů. Ne vždy ale nabízí nejlepší výkon. Místo toho doporučujeme následující:

Řazení ArrayList není zaručeno. Před provedením operací (například BinarySearch), které vyžadují ArrayList řazení, musíte řadit ArrayList voláním jeho Sort metody . Chcete-li zachovat kolekci, která je automaticky seřazena při přidání nových prvků, můžete použít SortedSet<T> třídu .

Kapacita objektu ArrayList je počet prvků, které může obsahovat ArrayList . Při přidání prvků do objektu ArrayListse kapacita automaticky zvýší podle potřeby prostřednictvím přerozdělení. Kapacitu lze snížit voláním TrimToSize nebo explicitním Capacity nastavením vlastnosti .

Pouze rozhraní .NET Framework: U velmi velkých ArrayList objektů můžete zvýšit maximální kapacitu na 2 miliardy prvků v 64bitovém systému nastavením enabled atributu elementu <gcAllowVeryLargeObjects> konfigurace na true v prostředí runtime.

K prvkům v této kolekci lze přistupovat pomocí celočíselného indexu. Indexy v této kolekci jsou založené na nule.

Kolekce přijímá ArrayListnull jako platnou hodnotu. Umožňuje také duplicitní prvky.

Použití multidimenzionálních polí jako prvků v kolekci ArrayList není podporováno.

Konstruktory

ArrayList()

Inicializuje novou instanci ArrayList třídy, která je prázdná a má výchozí počáteční kapacitu.

ArrayList(ICollection)

Inicializuje novou instanci ArrayList třídy, která obsahuje prvky zkopírované ze zadané kolekce a která má stejnou počáteční kapacitu jako počet zkopírovaných prvků.

ArrayList(Int32)

Inicializuje novou instanci ArrayList třídy, která je prázdná a má zadanou počáteční kapacitu.

Vlastnosti

Capacity

Získá nebo nastaví počet prvků, které ArrayList mohou obsahovat.

Count

Získá počet prvků skutečně obsažených v objektu ArrayList.

IsFixedSize

Získá hodnotu označující, zda ArrayList má pevnou velikost.

IsReadOnly

Získá hodnotu, která určuje, zda je ArrayList určena jen pro čtení.

IsSynchronized

Získá hodnotu označující, zda přístup k objektu ArrayList je synchronizován (bezpečný pro přístup z více vláken).

Item[Int32]

Získá nebo nastaví prvek u zadaného indexu.

SyncRoot

Získá objekt, který lze použít k synchronizaci přístupu k .ArrayList

Metody

Adapter(IList)

Vytvoří obálku ArrayList pro konkrétní IListobjekt .

Add(Object)

Přidá objekt na konec objektu ArrayList.

AddRange(ICollection)

Přidá prvky objektu ICollection na konec objektu ArrayList.

BinarySearch(Int32, Int32, Object, IComparer)

Vyhledá v rozsahu prvků v seřazené ArrayList prvek pomocí zadaného porovnávače a vrátí index prvku od nuly.

BinarySearch(Object)

Vyhledá celý seřazený ArrayList prvek pomocí výchozího porovnávače a vrátí index elementu od nuly.

BinarySearch(Object, IComparer)

Vyhledá celý seřazený ArrayList prvek pomocí zadaného porovnávače a vrátí index prvku od nuly.

Clear()

Odebere všechny elementy z kolekce ArrayList.

Clone()

Vytvoří mělkou kopii .ArrayList

Contains(Object)

Určuje, zda je prvek v objektu ArrayList.

CopyTo(Array)

Zkopíruje celek ArrayList do kompatibilního jednorozměrného Arrayobjektu od začátku cílového pole.

CopyTo(Array, Int32)

Zkopíruje celek ArrayList do kompatibilního jednorozměrného Arrayobjektu počínaje zadaným indexem cílového pole.

CopyTo(Int32, Array, Int32, Int32)

Zkopíruje rozsah prvků z ArrayList do kompatibilní jednorozměrné Array, počínaje zadaným indexem cílového pole.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
FixedSize(ArrayList)

Vrátí obálku ArrayList s pevnou velikostí.

FixedSize(IList)

Vrátí obálku IList s pevnou velikostí.

GetEnumerator()

Vrátí enumerátor pro celý ArrayListobjekt .

GetEnumerator(Int32, Int32)

Vrátí enumerátor pro rozsah prvků v objektu ArrayList.

GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetRange(Int32, Int32)

Vrátí hodnotu ArrayList , která představuje podmnožinu prvků ve zdroji ArrayList.

GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
IndexOf(Object)

Vyhledá zadaný Object a vrátí index od nuly prvního výskytu v rámci celého ArrayListobjektu .

IndexOf(Object, Int32)

Vyhledá zadaný Object a vrátí index od nuly prvního výskytu v rozsahu prvků v objektu ArrayList , který se rozšiřuje od zadaného indexu k poslednímu prvku.

IndexOf(Object, Int32, Int32)

Vyhledá zadaný Object a vrátí index od nuly prvního výskytu v rozsahu prvků v objektu ArrayList , který začíná zadaným indexem a obsahuje zadaný počet prvků.

Insert(Int32, Object)

Vloží prvek do objektu ArrayList v zadaném indexu.

InsertRange(Int32, ICollection)

Vloží prvky kolekce do v ArrayList zadaném indexu.

LastIndexOf(Object)

Vyhledá zadaný Object a vrátí index posledního výskytu v rámci celého ArrayListobjektu od nuly.

LastIndexOf(Object, Int32)

Vyhledá zadaný Object a vrátí index posledního výskytu založeného na nule v rozsahu prvků v objektu ArrayList , který se rozšiřuje od prvního prvku k zadanému indexu.

LastIndexOf(Object, Int32, Int32)

Vyhledá zadaný Object a vrátí index posledního výskytu od nuly v rozsahu prvků v objektu ArrayList , který obsahuje zadaný počet prvků a končí na zadaném indexu.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ReadOnly(ArrayList)

Vrátí obálku jen ArrayList pro čtení.

ReadOnly(IList)

Vrátí obálku jen IList pro čtení.

Remove(Object)

Odebere první výskyt konkrétního objektu z objektu ArrayList.

RemoveAt(Int32)

Odebere prvek v zadaném indexu objektu ArrayList.

RemoveRange(Int32, Int32)

Odebere rozsah prvků z objektu ArrayList.

Repeat(Object, Int32)

Vrátí hodnotu, ArrayList jejíž prvky jsou kopiemi zadané hodnoty.

Reverse()

Obrátí pořadí prvků v celém ArrayListobjektu .

Reverse(Int32, Int32)

Obrátí pořadí prvků v zadaném rozsahu.

SetRange(Int32, ICollection)

Zkopíruje prvky kolekce do rozsahu prvků v objektu ArrayList.

Sort()

Seřadí prvky v celém ArrayListobjektu .

Sort(IComparer)

Seřadí prvky v celém ArrayList objektu pomocí zadaného porovnávače.

Sort(Int32, Int32, IComparer)

Seřadí prvky v rozsahu prvků v ArrayList pomocí zadaného porovnávače.

Synchronized(ArrayList)

Vrátí obálku ArrayList , která je synchronizovaná (bezpečná pro přístup z více vláken).

Synchronized(IList)

Vrátí obálku IList , která je synchronizovaná (bezpečná pro přístup z více vláken).

ToArray()

Zkopíruje prvky objektu ArrayList do nového Object pole.

ToArray(Type)

Zkopíruje elementy ArrayList do nového pole zadaného typu elementu.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
TrimToSize()

Nastaví kapacitu na skutečný počet prvků v objektu ArrayList.

Metody rozšíření

Cast<TResult>(IEnumerable)

Přetypuje prvky objektu na IEnumerable zadaný typ.

OfType<TResult>(IEnumerable)

Filtruje prvky objektu IEnumerable na základě zadaného typu.

AsParallel(IEnumerable)

Umožňuje paralelizaci dotazu.

AsQueryable(IEnumerable)

Převede objekt na IEnumerableIQueryable.

Platí pro

Bezpečný přístup z více vláken

Veřejné statické členy (Shared v jazyce Visual Basic) tohoto typu jsou bezpečné pro přístup z více vláken. U členů instancí není zaručena bezpečnost pro přístup z více vláken.

Může ArrayList podporovat více čtenářů současně, pokud se kolekce nezmění. Aby byla zajištěna bezpečnost ArrayListvlákna , musí být všechny operace prováděny prostřednictvím obálky vrácené metodou Synchronized(IList) .

Výčet prostřednictvím kolekce nemůže být procedurou bezpečnou pro přístup z více vláken. I v případě, že jde o synchronizovanou kolekci, mohou úpravy provádět i ostatní vlákna, což způsobuje vyvolání výjimky enumerátorem. K zaručení bezpečnosti přístupu z více vláken můžete buďto zamknout kolekci na celou dobu práce s výčtem, nebo zachycovat výjimky vzniklé v důsledku změn prováděných ostatními vlákny.

Viz také