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
[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#) lubList(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) | |
| 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() | |
| 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.