ArrayList Clase

Definición

Implementa la interfaz IList utilizando una matriz cuyo tamaño aumenta dinámicamente cuando es necesario.

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
Herencia
ArrayList
Derivado
Atributos
Implementaciones

Ejemplos

En el ejemplo siguiente se muestra cómo crear e inicializar y ArrayList cómo mostrar sus valores.

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   !

Comentarios

Importante

No se recomienda usar la ArrayList clase para el nuevo desarrollo. En su lugar, se recomienda usar la clase genérica List<T> . La ArrayList clase está diseñada para contener colecciones heterogéneas de objetos. Sin embargo, no siempre ofrece el mejor rendimiento. En su lugar, se recomienda lo siguiente:

  • Para una colección heterogénea de objetos, use el List<Object> tipo (en C#) o List(Of Object) (en Visual Basic).
  • Para una colección homogénea de objetos, use la List<T> clase .
    Consulte Consideraciones de rendimiento en el List<T> tema de referencia para obtener una explicación sobre el rendimiento relativo de estas clases. Vea Colecciones no genéricas no deben usarse en GitHub para obtener información general sobre el uso de tipos de colección genéricos en lugar de no genéricos.

ArrayList No se garantiza que se ordene. Debe ordenar ArrayList mediante una llamada a su Sort método antes de realizar operaciones (como BinarySearch) que requieren ArrayList que se ordene . Para mantener una colección que se ordena automáticamente a medida que se agregan nuevos elementos, puede usar la SortedSet<T> clase .

La capacidad de un ArrayList es el número de elementos que ArrayList puede contener. A medida que se agregan elementos a , ArrayListla capacidad aumenta automáticamente según sea necesario mediante la reasignación. La capacidad se puede reducir llamando a TrimToSize o estableciendo la Capacity propiedad explícitamente.

Solo .NET Framework: En el caso de objetos muy grandesArrayList, puede aumentar la capacidad máxima a 2 mil millones de elementos en un sistema de 64 bits estableciendo el enabled atributo del elemento true de <gcAllowVeryLargeObjects> configuración en en el entorno en tiempo de ejecución.

Se puede tener acceso a los elementos de esta colección mediante un índice entero. Los índices de esta colección se basan en cero.

La ArrayList colección acepta null como un valor válido. También permite elementos duplicados.

No se admite el uso de matrices multidimensionales como elementos de una ArrayList colección.

Constructores

ArrayList()

Inicializa una nueva instancia de la clase ArrayList que está vacía y tiene la capacidad inicial predeterminada.

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.

ArrayList(Int32)

Inicializa una nueva instancia de la clase ArrayList que está vacía y tiene la capacidad inicial especificada.

Propiedades

Capacity

Obtiene o establece el número de elementos que puede contener ArrayList.

Count

Obtiene el número de elementos contenido realmente en ArrayList.

IsFixedSize

Obtiene un valor que indica si la interfaz ArrayList tiene un tamaño fijo.

IsReadOnly

Obtiene un valor que indica si ArrayList es de solo lectura.

IsSynchronized

Obtiene un valor que indica si el acceso a la interfaz ArrayList está sincronizado (es seguro para subprocesos).

Item[Int32]

Obtiene o establece el elemento en el índice especificado.

SyncRoot

Obtiene un objeto que se puede usar para sincronizar el acceso a ArrayList.

Métodos

Adapter(IList)

Crea un contenedor de ArrayList para una interfaz IList concreta.

Add(Object)

Agrega un objeto al final de ArrayList.

AddRange(ICollection)

Agrega los elementos de ICollection al final de 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.

BinarySearch(Object)

Busca la ArrayList completa ordenada para un elemento usando el comparador predeterminado y devuelve el índice de base cero del elemento.

BinarySearch(Object, IComparer)

Busca la ArrayList completa ordenada para un elemento usando el comparador especificado y devuelve el índice de base cero del elemento.

Clear()

Quita todos los elementos de ArrayList.

Clone()

Crea una copia superficial de la colección ArrayList.

Contains(Object)

Determina si un elemento se encuentra en ArrayList.

CopyTo(Array)

Copia la ArrayList completa en una Array unidimensional compatible, empezando en el principio de la matriz de destino.

CopyTo(Array, Int32)

Copia la totalidad de ArrayList en una matriz Array unidimensional compatible, comenzando en el índice especificado de la matriz de destino.

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.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
FixedSize(ArrayList)

Devuelve un contenedor de ArrayList con un tamaño fijo.

FixedSize(IList)

Devuelve un contenedor de IList con un tamaño fijo.

GetEnumerator()

Devuelve un enumerador para la ArrayList completa.

GetEnumerator(Int32, Int32)

Devuelve un enumerador para un intervalo de elementos de la matriz ArrayList.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetRange(Int32, Int32)

Devuelve una ArrayList que representa un subconjunto de los elementos de la ArrayList de origen.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de 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.

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.

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.

Insert(Int32, Object)

Inserta un elemento en ArrayList en el índice especificado.

InsertRange(Int32, ICollection)

Inserta los elementos de una colección en ArrayList en el índice especificado.

LastIndexOf(Object)

Busca el Object especificado y devuelve el índice de base cero de la última aparición en la ArrayList completa.

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.

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.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ReadOnly(ArrayList)

Devuelve un contenedor de ArrayList de solo lectura.

ReadOnly(IList)

Devuelve un contenedor de IList de solo lectura.

Remove(Object)

Quita la primera aparición de un objeto específico de la interfaz ArrayList.

RemoveAt(Int32)

Quita el elemento situado en el índice especificado de ArrayList.

RemoveRange(Int32, Int32)

Quita todos los elementos de ArrayList.

Repeat(Object, Int32)

Devuelve una ArrayList cuyos elementos son copias del valor especificado.

Reverse()

Invierte el orden de los elementos en la ArrayList completa.

Reverse(Int32, Int32)

Invierte el orden de los elementos en el intervalo especificado.

SetRange(Int32, ICollection)

Copia los elementos de una colección en un intervalo de elementos de ArrayList.

Sort()

Ordena todos los elementos de ArrayList.

Sort(IComparer)

Ordena los elementos en la ArrayList completa usando el comparador especificado.

Sort(Int32, Int32, IComparer)

Ordena los elementos en un intervalo de elementos de la matriz ArrayList usando el comparador especificado.

Synchronized(ArrayList)

Devuelve un contenedor de la clase ArrayList que está sincronizado (es seguro para subprocesos).

Synchronized(IList)

Devuelve un contenedor de la clase IList que está sincronizado (es seguro para subprocesos).

ToArray()

Copia los elementos de ArrayList en una nueva matriz de Object.

ToArray(Type)

Copia los elementos de la matriz ArrayList a una nueva matriz del tipo de elemento especificado.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
TrimToSize()

Establece la capacidad en el número real de elementos que hay en ArrayList.

Métodos de extensión

Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.

OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.

Se aplica a

Seguridad para subprocesos

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Un ArrayList puede admitir varios lectores simultáneamente, siempre y cuando la colección no se modifique. Para garantizar la seguridad de subprocesos de ArrayList, todas las operaciones deben realizarse a través del contenedor devuelto por el Synchronized(IList) método .

Enumerar una colección no es intrínsecamente un procedimiento seguro para subprocesos. Incluso cuando una colección está sincronizada, otros subprocesos todavía pueden modificarla, lo que hace que el enumerador produzca una excepción. 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.

Consulte también