ArrayList Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ArrayList = class
interface IList
interface ICloneable
interface ICollection
interface IEnumerable
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 ArrayList objekt 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 požíla heterogenní kolekce objektů. Ne vždy ale nabízí nejlepší výkon. Místo toho doporučujeme následující:
- Pro heterogenní kolekci objektů použijte
List<Object>
typ (v jazyce C#) neboList(Of Object)
(v jazyce Visual Basic). - Pro homogenní kolekci objektů použijte List<T> třídu .
Informace o relativním výkonu List<T> těchto tříd najdete v tématu Věnovaném aspektům výkonu v referenčním tématu. Obecné informace o použití obecných než obecných typů kolekcí najdete v tématu Na GitHubu by se neměly používat obecné kolekce .
Ř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é ArrayList může obsahovat. Při přidání prvků do objektu ArrayListse kapacita automaticky zvýší podle potřeby prostřednictvím reallokace. 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 v 64bitovém systému zvýšit maximální kapacitu na 2 miliardy prvků nastavením enabled
atributu konfiguračního <gcAllowVeryLargeObjects>
prvku na true
v prostředí za běhu.
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 je přístup k ArrayList je synchronizován (bez 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) | |
Add(Object) |
Přidá objekt na konec objektu ArrayList. |
AddRange(ICollection) |
Přidá prvky objektu na ICollection konec objektu ArrayList. |
BinarySearch(Int32, Int32, Object, IComparer) |
Vyhledá oblast prvků v seřazené ArrayList pro prvek pomocí zadaného porovnávače a vrátí nulový index elementu. |
BinarySearch(Object) |
Vyhledá celý seřazený ArrayList prvek pomocí výchozího porovnávače a vrátí index elementu založeného na nule. |
BinarySearch(Object, IComparer) |
Vyhledá celý seřazený ArrayList prvek pomocí zadaného porovnávače a vrátí index elementu založeného na nule. |
Clear() |
Odebere všechny elementy z kolekce ArrayList. |
Clone() |
Vytvoří mělkou kopii souboru 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 celý ArrayList objekt 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 objektu ArrayList do kompatibilního jednorozměrného Arrayobjektu , 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 oblast 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() |
Získá aktuální Type instanci. (Zděděno od Object) |
IndexOf(Object) |
Vyhledá zadaný Object a vrátí nulový index prvního výskytu v rámci celého ArrayListobjektu . |
IndexOf(Object, Int32) |
Vyhledá zadaný Object a vrátí nulový index prvního výskytu v rozsahu prvků v objektu ArrayList , který se rozšiřuje od zadaného indexu k poslednímu elementu. |
IndexOf(Object, Int32, Int32) |
Vyhledá zadaný Object index a vrátí nulový index 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 zadaného indexu ArrayList . |
InsertRange(Int32, ICollection) |
Vloží prvky kolekce do ArrayList zadaného indexu. |
LastIndexOf(Object) |
Vyhledá zadaný Object a vrátí nulový index posledního výskytu v rámci celého ArrayListobjektu . |
LastIndexOf(Object, Int32) |
Vyhledá zadaný Object a vrátí nulový index posledního výskytu 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í nulový index posledního výskytu 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 řadu prvků z objektu ArrayList. |
Repeat(Object, Int32) |
Vrátí hodnotu, ArrayList jejíž prvky jsou kopie zadané hodnoty. |
Reverse() |
Obrátí pořadí prvků v celém ArrayListobjektu . |
Reverse(Int32, Int32) |
Vrátí pořadí prvků v zadaném rozsahu. |
SetRange(Int32, ICollection) |
Zkopíruje prvky kolekce v rozsahu prvků v objektu ArrayList. |
Sort() |
Seřadí prvky v celém ArrayListsouboru . |
Sort(IComparer) |
Seřadí prvky v celém ArrayList souboru pomocí zadaného porovnávače. |
Sort(Int32, Int32, IComparer) |
Seřadí elementy v rozsahu prvků pomocí ArrayList zadaného porovnávače. |
Synchronized(ArrayList) |
Vrátí obálku ArrayList , která je synchronizovaná (bez vláken). |
Synchronized(IList) |
Vrátí obálku IList , která je synchronizovaná (bez vláken). |
ToArray() | |
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 souboru 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é 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 není kolekce změněna. Aby byla zajištěna bezpečnost ArrayListvlákna , musí být všechny operace provedeny 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é
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro