ArrayList Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
[<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
- Dziedziczenie
-
ArrayList
- Pochodne
- Atrybuty
- Implementuje
Przykłady
W poniższym przykładzie pokazano, jak utworzyć i zainicjować element 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 nowego programowania. Zamiast tego zalecamy użycie klasy ogólnej List<T> .
Klasa jest przeznaczona ArrayList do przechowywania heterogenicznych kolekcji obiektów. Jednak nie zawsze oferuje 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#) lubList(Of Object)
(w języku Visual Basic). - W przypadku jednorodnej kolekcji obiektów użyj List<T> klasy .
Zobacz Zagadnienia dotyczące wydajności w List<T> temacie referencyjnym, aby zapoznać się z względną 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 ogólnych, a nie ogólnych typów kolekcji.
Nie ArrayList ma gwarancji sortowania. Należy posortować metodę ArrayList , wywołując metodę Sort przed wykonaniem operacji (na przykład BinarySearch), które wymagają ArrayList sortowania. Aby zachować kolekcję, która jest automatycznie sortowana w miarę dodawania SortedSet<T> nowych elementów, można użyć klasy .
Pojemność elementu ArrayList to liczba elementów, które ArrayList mogą być przechowywane. Ponieważ elementy są dodawane do elementu ArrayList, pojemność jest automatycznie zwiększana zgodnie z wymaganiami za pośrednictwem reallokacji. Pojemność można zmniejszyć przez wywołanie TrimToSize lub jawne ustawienie Capacity właściwości.
.NET Framework tylko: 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 całkowitego. 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ą pojemność początkową jak liczba skopiowanych elementów. |
ArrayList(Int32) |
Inicjuje ArrayList nowe wystąpienie klasy, która jest pusta i ma określoną pojemność początkową. |
Właściwości
Capacity |
Pobiera lub ustawia liczbę elementów, które ArrayList mogą zawierać. |
Count |
Pobiera liczbę elementów rzeczywiście zawartych w elemecie ArrayList. |
IsFixedSize |
Pobiera wartość wskazującą, czy rozmiar ArrayList ma 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ątek). |
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) | |
Add(Object) |
Dodaje obiekt na końcu obiektu ArrayList. |
AddRange(ICollection) |
Dodaje elementy elementu na ICollection końcu elementu ArrayList. |
BinarySearch(Int32, Int32, Object, IComparer) |
Wyszukuje zakres elementów w posortowanym ArrayList dla elementu przy użyciu określonego modułu porównywania i zwraca indeks oparty na zerze elementu. |
BinarySearch(Object) |
Wyszukuje cały posortowany ArrayList element przy użyciu domyślnego narzędzia comparer i zwraca indeks zerowy elementu. |
BinarySearch(Object, IComparer) |
Wyszukuje cały posortowany ArrayList element przy użyciu określonego porównania i zwraca indeks oparty na zerze elementu. |
Clear() |
Usuwa wszystkie elementy z obiektu ArrayList. |
Clone() |
Tworzy płytkią kopię elementu 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łą ArrayList do zgodnej jednowymiarowej Arraytablicy, zaczynając od określonego indeksu tablicy docelowej. |
CopyTo(Int32, Array, Int32, Int32) |
Kopiuje szereg elementów z ArrayList zgodnych jednowymiarowych 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 elemecie 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 bieżące wystąpienie. (Odziedziczone po Object) |
IndexOf(Object) |
Wyszukuje określony Object element i zwraca indeks oparty na zerowym pierwszym wystąpieniu w całym ArrayListobiekcie . |
IndexOf(Object, Int32) |
Wyszukuje określony Object element i zwraca indeks oparty na zera pierwszego wystąpienia w zakresie elementów w ArrayList obiekcie, który rozciąga się od określonego indeksu do ostatniego elementu. |
IndexOf(Object, Int32, Int32) |
Wyszukuje określony Object i zwraca indeks pierwszego wystąpienia w zakresie elementów w ArrayList określonym indeksie, który rozpoczyna się od określonego indeksu i zawiera określoną liczbę elementów. |
Insert(Int32, Object) |
Wstawia element do ArrayList określonego indeksu. |
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 zera ostatniego wystąpienia w zakresie elementów w ArrayList obiekcie, który rozciąga się od pierwszego elementu do określonego indeksu. |
LastIndexOf(Object, Int32, Int32) |
Wyszukuje określony Object element i zwraca indeks zera ostatniego wystąpienia w zakresie elementów w ArrayList obiekcie 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 elementu ArrayList. |
RemoveRange(Int32, Int32) |
Usuwa szereg 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łości ArrayList. |
Reverse(Int32, Int32) |
Odwraca kolejność elementów w określonym zakresie. |
SetRange(Int32, ICollection) |
Kopiuje elementy kolekcji na wiele elementów w elemecie ArrayList. |
Sort() |
Sortuje elementy w całości ArrayList. |
Sort(IComparer) |
Sortuje elementy w całości ArrayList przy użyciu określonego porównania. |
Sort(Int32, Int32, IComparer) |
Sortuje elementy w zakresie elementów ArrayList przy użyciu określonego porównania. |
Synchronized(ArrayList) |
Zwraca otokę ArrayList , która jest synchronizowana (bezpieczne wątki). |
Synchronized(IList) |
Zwraca otokę IList , która jest synchronizowana (bezpieczne wątki). |
ToArray() | |
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 elemecie ArrayList. |
Metody rozszerzania
Cast<TResult>(IEnumerable) |
Rzutuje elementy elementu IEnumerable na określony typ. |
OfType<TResult>(IEnumerable) |
Filtruje elementy elementu IEnumerable 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 jest modyfikowana. Aby zagwarantować bezpieczeństwo wątków elementu ArrayList, wszystkie operacje należy wykonać 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.