ArrayList Class

Definición

Implementa la interfaz IList utilizando una matriz cuyo tamaño aumenta dinámicamente cuando es necesario. Implements the IList interface using an array whose size is dynamically increased as required.

[System.Runtime.InteropServices.ComVisible(true)]
public class ArrayList : ICloneable, System.Collections.IList
Herencia
ArrayList
Derivado
Atributos
Implementaciones

Ejemplos

En el ejemplo de código siguiente se muestra cómo crear e inicializar un ArrayList y cómo mostrar sus valores.The following code example shows how to create and initialize an ArrayList and how to display its values.

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

Comentarios

La ArrayList clase está diseñada para contener colecciones heterogéneas de objetos.The ArrayList class is designed to hold heterogeneous collections of objects. Sin embargo, no siempre ofrece el mejor rendimiento.However, it does not always offer the best performance. En su lugar, se recomienda lo siguiente:Instead, we recommend the following:

  • Para obtener una colección heterogénea de objetos, utilice el List<Object> (en C#) o List(Of Object) (en Visual Basic), escriba.For a heterogeneous collection of objects, use the List<Object> (in C#) or List(Of Object) (in Visual Basic) type.

  • Para obtener una colección homogénea de objetos, utilice el List<T> clase.For a homogeneous collection of objects, use the List<T> class.

Consulte la sección "Consideraciones de rendimiento" en el List<T> tema de referencia para obtener una explicación del rendimiento relativo de estas clases.See the "Performance Considerations" section in the List<T> reference topic for a discussion of the relative performance of these classes.

El ArrayList no se garantiza que se va a ordenar.The ArrayList is not guaranteed to be sorted. Se debe ordenar el ArrayList mediante una llamada a su Sort método antes de realizar operaciones (como BinarySearch) que requieren el ArrayList esté ordenada.You must sort the ArrayList by calling its Sort method prior to performing operations (such as BinarySearch) that require the ArrayList to be sorted. Para mantener una colección que se ordena automáticamente cuando se agregan nuevos elementos, puede usar el SortedSet<T> clase.To maintain a collection that is automatically sorted as new elements are added, you can use the SortedSet<T> class.

La capacidad de un ArrayList es el número de elementos de la ArrayList puede contener.The capacity of an ArrayList is the number of elements the ArrayList can hold. Cuando se agregan elementos a un ArrayList, automáticamente se aumenta la capacidad según sea necesario mediante la reasignación.As elements are added to an ArrayList, the capacity is automatically increased as required through reallocation. La capacidad puede reducirse mediante una llamada a TrimToSize o estableciendo la Capacity propiedad explícitamente.The capacity can be decreased by calling TrimToSize or by setting the Capacity property explicitly.

Para grandes ArrayList objetos, puede aumentar la capacidad máxima de 2 millones de elementos en un sistema de 64 bits estableciendo el enabled atributo del elemento de configuración para true en el entorno de tiempo de ejecución.For very large ArrayList objects, you can increase the maximum capacity to 2 billion elements on a 64-bit system by setting the enabled attribute of the configuration element to true in the run-time environment.

Elementos de esta colección se pueden acceder mediante un índice entero.Elements in this collection can be accessed using an integer index. Los índices de esta colección son de base cero.Indexes in this collection are zero-based.

El ArrayList colección acepta null como un valor válido.The ArrayList collection accepts null as a valid value. También permite elementos duplicados.It also allows duplicate elements.

Uso de matrices multidimensionales como elementos en una ArrayList no se admite la colección.Using multidimensional arrays as elements in an ArrayList collection is not supported.

Constructores

ArrayList()

Inicializa una nueva instancia de la clase ArrayList que está vacía y tiene la capacidad inicial predeterminada. Initializes a new instance of the ArrayList class that is empty and has the default initial capacity.

ArrayList(ICollection)

Inicializa una nueva instancia de la clase ArrayList que contiene elementos copiados de la colección especificada y que tiene la misma capacidad inicial que el número de elementos copiados. Initializes a new instance of the ArrayList class that contains elements copied from the specified collection and that has the same initial capacity as the number of elements copied.

ArrayList(Int32)

Inicializa una nueva instancia de la clase ArrayList que está vacía y tiene la capacidad inicial especificada. Initializes a new instance of the ArrayList class that is empty and has the specified initial capacity.

Propiedades

Capacity

Obtiene o establece el número de elementos que puede contener ArrayList. Gets or sets the number of elements that the ArrayList can contain.

Count

Obtiene el número de elementos contenido realmente en ArrayList. Gets the number of elements actually contained in the ArrayList.

IsFixedSize

Obtiene un valor que indica si la interfaz ArrayList tiene un tamaño fijo. Gets a value indicating whether the ArrayList has a fixed size.

IsReadOnly

Obtiene un valor que indica si ArrayList es de solo lectura. Gets a value indicating whether the ArrayList is read-only.

IsSynchronized

Obtiene un valor que indica si el acceso a la interfaz ArrayList está sincronizado (es seguro para subprocesos). Gets a value indicating whether access to the ArrayList is synchronized (thread safe).

Item[Int32]

Obtiene o establece el elemento en el índice especificado. Gets or sets the element at the specified index.

SyncRoot

Obtiene un objeto que se puede usar para sincronizar el acceso a ArrayList. Gets an object that can be used to synchronize access to the ArrayList.

Métodos

Adapter(IList)

Crea un contenedor de ArrayList para una interfaz IList concreta. Creates an ArrayList wrapper for a specific IList.

Add(Object)

Agrega un objeto al final de ArrayList. Adds an object to the end of the ArrayList.

AddRange(ICollection)

Agrega los elementos de ICollection al final de ArrayList. Adds the elements of an ICollection to the end of the ArrayList.

BinarySearch(Int32, Int32, Object, IComparer)

Busca un elemento en un intervalo de elementos del objeto ArrayList ordenado usando el comparador especificado y devuelve el índice de base cero del elemento. Searches a range of elements in the sorted ArrayList for an element using the specified comparer and returns the zero-based index of the element.

BinarySearch(Object)

Busca la ArrayList completa ordenada para un elemento usando el comparador predeterminado y devuelve el índice de base cero del elemento. Searches the entire sorted ArrayList for an element using the default comparer and returns the zero-based index of the element.

BinarySearch(Object, IComparer)

Busca la ArrayList completa ordenada para un elemento usando el comparador especificado y devuelve el índice de base cero del elemento. Searches the entire sorted ArrayList for an element using the specified comparer and returns the zero-based index of the element.

Clear()

Quita todos los elementos de ArrayList. Removes all elements from the ArrayList.

Clone()

Crea una copia superficial de la colección ArrayList. Creates a shallow copy of the ArrayList.

Contains(Object)

Determina si un elemento se encuentra en ArrayList. Determines whether an element is in the ArrayList.

CopyTo(Array)

Copia la ArrayList completa en una Array unidimensional compatible, empezando en el principio de la matriz de destino. Copies the entire ArrayList to a compatible one-dimensional Array, starting at the beginning of the target array.

CopyTo(Array, Int32)

Copia la totalidad de ArrayList en una matriz Array unidimensional compatible, comenzando en el índice especificado de la matriz de destino. Copies the entire ArrayList to a compatible one-dimensional Array, starting at the specified index of the target array.

CopyTo(Int32, Array, Int32, Int32)

Copia un intervalo de elementos de ArrayList en una Array unidimensional compatible, empezando en el índice especificado de la matriz de destino. Copies a range of elements from the ArrayList to a compatible one-dimensional Array, starting at the specified index of the target array.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual. Determines whether the specified object is equal to the current object.

(Inherited from Object)
FixedSize(ArrayList)

Devuelve un contenedor de ArrayList con un tamaño fijo. Returns an ArrayList wrapper with a fixed size.

FixedSize(IList)

Devuelve un contenedor de IList con un tamaño fijo. Returns an IList wrapper with a fixed size.

GetEnumerator()

Devuelve un enumerador para la ArrayList completa. Returns an enumerator for the entire ArrayList.

GetEnumerator(Int32, Int32)

Devuelve un enumerador para un intervalo de elementos de la matriz ArrayList. Returns an enumerator for a range of elements in the ArrayList.

GetHashCode()

Sirve como la función hash predeterminada. Serves as the default hash function.

(Inherited from Object)
GetRange(Int32, Int32)

Devuelve una ArrayList que representa un subconjunto de los elementos de la ArrayList de origen. Returns an ArrayList which represents a subset of the elements in the source ArrayList.

GetType()

Obtiene el Type de la instancia actual. Gets the Type of the current instance.

(Inherited from Object)
IndexOf(Object)

Busca el objeto Object especificado y devuelve el índice de base cero de la primera aparición en toda la colección ArrayList. Searches for the specified Object and returns the zero-based index of the first occurrence within the entire ArrayList.

IndexOf(Object, Int32)

Busca el objeto Object especificado y devuelve el índice de base cero de la primera aparición dentro del intervalo de elementos de la matriz ArrayList que abarca desde el índice especificado hasta el último elemento. Searches for the specified Object and returns the zero-based index of the first occurrence within the range of elements in the ArrayList that extends from the specified index to the last element.

IndexOf(Object, Int32, Int32)

Busca el objeto Object especificado y devuelve el índice de base cero de la primera aparición dentro del intervalo de elementos de la matriz ArrayList que comienza en el índice especificado y contiene el número especificado de elementos. Searches for the specified Object and returns the zero-based index of the first occurrence within the range of elements in the ArrayList that starts at the specified index and contains the specified number of elements.

Insert(Int32, Object)

Inserta un elemento en ArrayList, en el índice especificado. Inserts an element into the ArrayList at the specified index.

InsertRange(Int32, ICollection)

Inserta los elementos de una colección en ArrayList en el índice especificado. Inserts the elements of a collection into the ArrayList at the specified index.

LastIndexOf(Object)

Busca el Object especificado y devuelve el índice de base cero de la última aparición en la ArrayList completa. Searches for the specified Object and returns the zero-based index of the last occurrence within the entire ArrayList.

LastIndexOf(Object, Int32)

Busca el objeto Object especificado y devuelve el índice de base cero de la última aparición dentro del intervalo de elementos de la matriz ArrayList que abarca desde el primer elemento hasta el último índice especificado. Searches for the specified Object and returns the zero-based index of the last occurrence within the range of elements in the ArrayList that extends from the first element to the specified index.

LastIndexOf(Object, Int32, Int32)

Busca el objeto Object especificado y devuelve el índice de base cero de la última aparición dentro del intervalo de elementos de la matriz ArrayList que contiene el número de elementos especificado y termina en el índice especificado. Searches for the specified Object and returns the zero-based index of the last occurrence within the range of elements in the ArrayList that contains the specified number of elements and ends at the specified index.

MemberwiseClone()

Crea una copia superficial del Object actual. Creates a shallow copy of the current Object.

(Inherited from Object)
ReadOnly(ArrayList)

Devuelve un contenedor de ArrayList de solo lectura. Returns a read-only ArrayList wrapper.

ReadOnly(IList)

Devuelve un contenedor de IList de solo lectura. Returns a read-only IList wrapper.

Remove(Object)

Quita la primera aparición de un objeto específico de la interfaz ArrayList. Removes the first occurrence of a specific object from the ArrayList.

RemoveAt(Int32)

Quita el elemento situado en el índice especificado de ArrayList. Removes the element at the specified index of the ArrayList.

RemoveRange(Int32, Int32)

Quita todos los elementos de ArrayList. Removes a range of elements from the ArrayList.

Repeat(Object, Int32)

Devuelve una ArrayList cuyos elementos son copias del valor especificado. Returns an ArrayList whose elements are copies of the specified value.

Reverse()

Invierte el orden de los elementos en la ArrayList completa. Reverses the order of the elements in the entire ArrayList.

Reverse(Int32, Int32)

Invierte el orden de los elementos en el intervalo especificado. Reverses the order of the elements in the specified range.

SetRange(Int32, ICollection)

Copia los elementos de una colección en un intervalo de elementos de ArrayList. Copies the elements of a collection over a range of elements in the ArrayList.

Sort()

Ordena todos los elementos de ArrayList. Sorts the elements in the entire ArrayList.

Sort(IComparer)

Ordena los elementos en la ArrayList completa usando el comparador especificado. Sorts the elements in the entire ArrayList using the specified comparer.

Sort(Int32, Int32, IComparer)

Ordena los elementos en un intervalo de elementos de la matriz ArrayList usando el comparador especificado. Sorts the elements in a range of elements in ArrayList using the specified comparer.

Synchronized(ArrayList)

Devuelve un contenedor de la clase ArrayList que está sincronizado (es seguro para subprocesos). Returns an ArrayList wrapper that is synchronized (thread safe).

Synchronized(IList)

Devuelve un contenedor de la clase IList que está sincronizado (es seguro para subprocesos). Returns an IList wrapper that is synchronized (thread safe).

ToArray()

Copia los elementos de ArrayList en una nueva matriz de Object. Copies the elements of the ArrayList to a new Object array.

ToArray(Type)

Copia los elementos de la matriz ArrayList a una nueva matriz del tipo de elemento especificado. Copies the elements of the ArrayList to a new array of the specified element type.

ToString()

Devuelve una cadena que representa el objeto actual. Returns a string that represents the current object.

(Inherited from Object)
TrimToSize()

Establece la capacidad en el número real de elementos que hay en la colección ArrayList. Sets the capacity to the actual number of elements in the ArrayList.

Se aplica a

Seguridad para subprocesos

Estáticos públicos (Shared en Visual Basic) los miembros de este tipo son seguros para subprocesos. Public static (Shared in Visual Basic) members of this type are thread safe. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos. Any instance members are not guaranteed to be thread safe. Un ArrayList puede admitir varios lectores simultáneamente, siempre y cuando no se modifica la colección. An ArrayList can support multiple readers concurrently, as long as the collection is not modified. Para garantizar la seguridad para subprocesos de la ArrayList, todas las operaciones deben realizarse a través del contenedor devuelto por el Synchronized(IList) método. To guarantee the thread safety of the ArrayList, all operations must be done through the wrapper returned by the Synchronized(IList) method. Enumerar una colección no es intrínsecamente un procedimiento seguro para subprocesos. Enumerating through a collection is intrinsically not a thread-safe procedure. Incluso cuando una colección está sincronizada, otros subprocesos todavía pueden modificarla, lo que hace que el enumerador produzca una excepción. Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. Con el fin de garantizar la seguridad para la ejecución de subprocesos durante la enumeración, se puede bloquear la colección durante toda la enumeración o detectar las excepciones resultantes de los cambios realizados por otros subprocesos. To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.

Consultar también