Esporta (0) Stampa
Espandi tutto

Classe ArrayList

Consente di implementare l'interfaccia IList utilizzando una matrice la cui dimensione aumenta dinamicamente in base alle necessità.

Spazio dei nomi: System.Collections
Assembly: mscorlib (in mscorlib.dll)

[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public 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.

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   !

*/

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    !
 */

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

Aggiunte alla community

AGGIUNGI
Mostra:
© 2015 Microsoft