ArrayList Classe

Definição

Implementa a interface IList usando uma matriz cujo tamanho é aumentado dinamicamente conforme necessário.

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
Public Class ArrayList
Implements IList
Public Class ArrayList
Implements ICloneable, IList
Herança
ArrayList
Derivado
Atributos
Implementações

Exemplos

O exemplo a seguir mostra como criar e inicializar um ArrayList e como exibir seus 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   !

Comentários

Importante

Não recomendamos que você use a ArrayList classe para desenvolvimento novo. Em vez disso, recomendamos que você use a classe genérica List<T> . A ArrayList classe foi projetada para conter coleções heterogêneas de objetos. No entanto, nem sempre oferece o melhor desempenho. Em vez disso, recomendamos o seguinte:

  • Para uma coleção heterogênea de objetos, use o List<Object> tipo (em C#) ou List(Of Object) (no Visual Basic).
  • Para uma coleção homogênea de objetos, use a List<T> classe . Consulte Considerações de desempenho no List<T> tópico de referência para obter uma discussão sobre o desempenho relativo dessas classes. Confira Coleções não genéricas não devem ser usadas no GitHub para obter informações gerais sobre o uso de tipos de coleção genéricos em vez de não genéricos.

Não ArrayList há garantia de que o seja classificado. Você deve classificar o ArrayList chamando seu Sort método antes de executar operações (como BinarySearch) que exigem que o ArrayList seja classificado. Para manter uma coleção que é classificada automaticamente à medida que novos elementos são adicionados, você pode usar a SortedSet<T> classe .

A capacidade de um ArrayList é o número de elementos que o ArrayList pode conter. À medida que os elementos são adicionados a um ArrayList, a capacidade é aumentada automaticamente conforme necessário por meio da realocação. A capacidade pode ser reduzida chamando TrimToSize ou definindo a Capacity propriedade explicitamente.

.NET Framework apenas: para objetos muito grandesArrayList, você pode aumentar a capacidade máxima para 2 bilhões de elementos em um sistema de 64 bits definindo o enabled atributo do elemento de <gcAllowVeryLargeObjects> configuração como true no ambiente de tempo de execução.

Os elementos nesta coleção podem ser acessados usando um índice inteiro. Os índices nesta coleção são baseados em zero.

A ArrayList coleção aceita null como um valor válido. Ele também permite elementos duplicados.

Não há suporte para o uso de matrizes multidimensionais como elementos em uma ArrayList coleção.

Construtores

ArrayList()

Inicializa uma nova instância da classe ArrayList que está vazia e tem a capacidade inicial padrão.

ArrayList(ICollection)

Inicializa uma nova instância da classe ArrayList, que contém os elementos copiados da coleção especificada e tem a mesma capacidade inicial que o número de elementos copiados.

ArrayList(Int32)

Inicializa uma nova instância da classe ArrayList que está vazia e tem a capacidade inicial especificada.

Propriedades

Capacity

Obtém ou define o número de elementos que o ArrayList pode conter.

Count

Obtém o número de elementos realmente contidos no ArrayList.

IsFixedSize

Obtém um valor que indica se o ArrayList tem um tamanho fixo.

IsReadOnly

Obtém um valor que indica se o ArrayList é somente leitura.

IsSynchronized

Obtém um valor que indica se o acesso à ArrayList é sincronizado (thread-safe).

Item[Int32]

Obtém ou define o elemento no índice especificado.

SyncRoot

Obtém um objeto que pode ser usado para sincronizar o acesso ao ArrayList.

Métodos

Adapter(IList)

Cria um wrapper ArrayList para um determinado IList.

Add(Object)

Adiciona um objeto ao final do ArrayList.

AddRange(ICollection)

Adiciona os elementos de um ICollection ao final do ArrayList.

BinarySearch(Int32, Int32, Object, IComparer)

Pesquisa um intervalo de elementos no ArrayList classificado para encontrar um elemento que usa o comparador especificado e retorna o índice baseado em zero do elemento.

BinarySearch(Object)

Pesquisa todo o ArrayList classificado para um elemento usando o comparador padrão e retorna o índice baseado em zero do elemento.

BinarySearch(Object, IComparer)

Pesquisa um elemento em todo o ArrayList classificado usando o comparador especificado e retorna o índice baseado em zero do elemento.

Clear()

Remove todos os elementos do ArrayList.

Clone()

Cria uma cópia superficial do ArrayList.

Contains(Object)

Determina se um elemento está no ArrayList.

CopyTo(Array)

Copia todo o ArrayList para um Array unidimensional compatível, a partir do início da matriz de destino.

CopyTo(Array, Int32)

Copia todo o ArrayList em um Array unidimensional compatível, começando no índice especificado da matriz de destino.

CopyTo(Int32, Array, Int32, Int32)

Copia um intervalo de elementos do ArrayList para um Array unidimensional compatível, começando pelo índice especificado da matriz de destino.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
FixedSize(ArrayList)

Retorna um wrapper ArrayList com um tamanho fixo.

FixedSize(IList)

Retorna um wrapper IList com um tamanho fixo.

GetEnumerator()

Retorna um enumerador para todo o ArrayList.

GetEnumerator(Int32, Int32)

Retorna um enumerador para um intervalo de elementos no ArrayList.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetRange(Int32, Int32)

Retorna um ArrayList que representa um subconjunto dos elementos na origem ArrayList.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IndexOf(Object)

Pesquisa o Object especificado e retorna o índice de base zero da primeira ocorrência dentro de todo o ArrayList.

IndexOf(Object, Int32)

Pesquisa o Object especificado e retorna o índice baseado em zero da primeira ocorrência dentro do intervalo de elementos no ArrayList que se estende do índice especificado ao último elemento.

IndexOf(Object, Int32, Int32)

Pesquisa o Object especificado e retorna o índice baseado em zero da primeira ocorrência dentro de um intervalo de elementos no ArrayList que começa no índice especificado e contém o número de elementos especificado.

Insert(Int32, Object)

Insere um elemento no ArrayList, no índice especificado.

InsertRange(Int32, ICollection)

Insere os elementos de uma coleção no ArrayList no índice especificado.

LastIndexOf(Object)

Pesquisa o Object especificado e retorna o índice de base zero da última ocorrência dentro de todo o ArrayList.

LastIndexOf(Object, Int32)

Pesquisa o Object especificado e retorna o índice baseado em zero da última ocorrência dentro do intervalo de elementos no ArrayList que se estende do primeiro elemento ao índice especificado.

LastIndexOf(Object, Int32, Int32)

Pesquisa o Object especificado e retorna o índice baseado em zero da última ocorrência no intervalo de elementos na ArrayList que contém o número de elementos especificado e termina no índice especificado.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ReadOnly(ArrayList)

Retorna um wrapper ArrayList de somente leitura.

ReadOnly(IList)

Retorna um wrapper IList de somente leitura.

Remove(Object)

Remove a primeira ocorrência de um objeto específico do ArrayList.

RemoveAt(Int32)

Remove o elemento no índice especificado do ArrayList.

RemoveRange(Int32, Int32)

Remove um intervalo de elementos do ArrayList.

Repeat(Object, Int32)

Retorna um ArrayList cujos elementos são cópias do valor especificado.

Reverse()

Inverte a ordem dos elementos em todo o ArrayList.

Reverse(Int32, Int32)

Inverte a ordem dos elementos no intervalo especificado.

SetRange(Int32, ICollection)

Copia os elementos de uma coleção em um intervalo de elementos no ArrayList.

Sort()

Classifica os elementos em todo o ArrayList.

Sort(IComparer)

Classifica os elementos em todo o ArrayList usando o comparador especificado.

Sort(Int32, Int32, IComparer)

Classifica os elementos em um intervalo de elementos em ArrayList usando o comparador especificado.

Synchronized(ArrayList)

Retorna um wrapper ArrayList sincronizado (thread-safe).

Synchronized(IList)

Retorna um wrapper IList sincronizado (thread-safe).

ToArray()

Copia os elementos do ArrayList em uma nova matriz Object.

ToArray(Type)

Copia os elementos do ArrayList em uma nova matriz do tipo de elemento especificado.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
TrimToSize()

Define a capacidade para o número real de elementos em ArrayList.

Métodos de Extensão

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base em um tipo especificado.

AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

Aplica-se a

Acesso thread-safe

Os membros estáticos públicos (Shared no Visual Basic) desse são thread-safe. Não há garantia de que qualquer membro de instância seja seguro para threads.

Um ArrayList pode dar suporte a vários leitores simultaneamente, desde que a coleção não seja modificada. Para garantir a segurança de thread do ArrayList, todas as operações devem ser feitas por meio do wrapper retornado pelo Synchronized(IList) método .

A enumeração por meio de uma coleção não é um procedimento thread-safe intrínseco. Mesmo quando uma coleção está sincronizada, outros threads ainda podem modificar a coleção, o que faz o enumerador lançar uma exceção. Para garantir thread-safe durante a enumeração, é possível bloquear a coleção durante toda a enumeração ou verificar as exceções resultantes das alterações feitas por outros threads.

Confira também