Assembly: mscorlib (in mscorlib.dll)
<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public Class ArrayList Implements IList, ICollection, IEnumerable, ICloneable
Dim instance As ArrayList
[SerializableAttribute] [ComVisibleAttribute(true)] public class ArrayList : IList, ICollection, IEnumerable, ICloneable
[SerializableAttribute] [ComVisibleAttribute(true)] public ref class ArrayList : IList, ICollection, IEnumerable, ICloneable
/** @attribute SerializableAttribute() */ /** @attribute ComVisibleAttribute(true) */ public class ArrayList implements IList, ICollection, IEnumerable, ICloneable
SerializableAttribute ComVisibleAttribute(true) public class ArrayList implements IList, ICollection, IEnumerable, ICloneable
Non è garantito che la classe ArrayList sia ordinata. È necessario ordinare la classe ArrayList prima di eseguire operazioni, quali BinarySearch, che richiedono che la classe ArrayList sia ordinata.
La capacità di una classe ArrayList è il numero di elementi che tale classe ArrayList può contenere. La capacità iniziale predefinita per un oggetto ArrayList è 0. Quando vengono aggiunti elementi a un oggetto ArrayList, la capacità viene automaticamente aumentata secondo le necessità, tramite riallocazione. È possibile diminuire la capacità chiamando TrimToSize o impostando la proprietà Capacity in modo esplicito.
È possibile accedere agli elementi di questo insieme tramite un indice di integer. Gli indici in questo insieme sono a base zero.
ArrayList accetta riferimento null (Nothing in Visual Basic) come valore valido e consente elementi duplicati.
Nell'esempio di codice riportato di seguito viene illustrato come creare e inizializzare un oggetto ArrayList e come stampare i relativi valori.
Imports System Imports System.Collections Imports Microsoft.VisualBasic 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 'PrintValues End Class ' 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: f Values: Hello World ! */
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 ! */
import System.*;
import System.Collections.*;
public class SamplesArrayList
{
public static void main(String[] args)
{
// 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}", (Int32)myAL.get_Count());
Console.WriteLine(" Capacity: {0}", (Int32)myAL.get_Capacity());
Console.Write(" Values:");
PrintValues(myAL);
} //main
public static void PrintValues(IEnumerable myList)
{
IEnumerator objMyEnum = myList.GetEnumerator();
while (objMyEnum.MoveNext()) {
Object obj = objMyEnum.get_Current();
Console.Write(" {0}", obj);
}
Console.WriteLine();
} //PrintValues
} //SamplesArrayList
/*
This code produces output similar to the following:
myAL
Count: 3
Capacity: 4
Values: Hello World !
*/
import System; import System.Collections; // Creates and initializes a new ArrayList. var myAL : ArrayList = new ArrayList(); myAL.Add("Hello"); myAL.Add("World"); myAL.Add("!"); // Displays the properties and values of the ArrayList. Console.WriteLine( "myAL" ); Console.WriteLine( "\tCount: {0}", myAL.Count ); Console.WriteLine( "\tCapacity: {0}", myAL.Capacity ); Console.Write( "\tValues:" ); PrintValues( myAL ); function PrintValues( myList : IEnumerable ) { var myEnumerator : System.Collections.IEnumerator = myList.GetEnumerator(); while ( myEnumerator.MoveNext() ) Console.Write( "\t{0}", myEnumerator.Current ); Console.WriteLine(); } /* This code produces output similar to the following: myAL Count: 3 Capacity: 4 Values: Hello World ! */
System.Collections.ArrayList
System.Windows.Forms.DomainUpDown.DomainUpDownItemCollection
I membri statici pubblici (Shared in Visual Basic) di questo tipo sono thread-safe. Qualsiasi membro di istanza non ha garanzia di essere thread-safe.
Un oggetto ArrayList può supportare più lettori simultaneamente, purché l'insieme non venga modificato. Per garantire che la classe ArrayList sia thread-safe, è necessario che tutte le operazioni siano eseguite tramite il wrapper restituito dal metodo Synchronized.
L'enumerazione di un insieme non è di per sé una procedura thread-safe. Anche se un insieme è sincronizzato, è possibile che venga modificato da altri thread, con conseguente generazione di un'eccezione da parte dell'enumeratore. Per garantire che un insieme sia thread-safe durante l'enumerazione, è possibile bloccarlo nel corso dell'operazione oppure rilevare le eccezioni generate dalle modifiche apportate da altri thread.
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.
.NET Framework
Supportato in: 2.0 1.1 1.0.NET Compact Framework
Supportato in: 2.0 1.0.NET Framework 2.0, introduce i tipi generici (vedi http://msdn2.microsoft.com/it-it/library/512aeb7t(vs.80).aspx) grazie ai quali è possibile creare delle collection che, a differenza della ArrayList, è tipizzata. Nel caso specifico, la collection da utilizzare è List<T> (vedi http://msdn2.microsoft.com/it-it/library/6sh2ey19(VS.80).aspx).
Questa collection, essendo tipizzata a differenza dell'ArrayList, è più performante in quanto si evita il Boxing e l'Unboxing dei tipi in essa contenuti.
L'utilizzo dei Generics è comunque possible solo dal .NET Framework 2.0 in poi.