ArrayList Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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#) ouList(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) | |
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() | |
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.