Coleções em C#: ArrayList, Queue, Stack, Hashtable e SortedList
Classificado em Computação
Escrito em em
português com um tamanho de 4,92 KB
ArrayList
ArrayList possui capacidade inicial = 4.
Métodos:
- Add
- BinarySearch
- Contains
- Count
- IndexOf: retorna o índice da primeira ocorrência de um objeto especificado no ArrayList.
- Insert
- LastIndexOf: retorna o índice da última ocorrência de um objeto especificado no array.
- Remove: remove a primeira ocorrência.
- RemoveAt: remove um objeto no índice especificado.
- RemoveRange: remove determinada quantidade a partir do índice especificado.
- Reverse: inverte a ordem dos elementos do ArrayList.
- Sort: ordena os elementos.
- ToArray: copia para outro ArrayList.
- TrimToSize: altera a capacidade para a quantidade de elementos contidos atualmente.
Queue
Queue (Fila - First-in First-out).
Métodos:
- Clear: remove tudo.
- Contains: retorna true se tiver o elemento.
- Count
- Dequeue: remove e retorna o objeto do início.
- Enqueue: adiciona objetos.
- Peek: retorna o objeto do início sem removê-lo.
Stack
Stack (Pilha - Last-in First-out).
Métodos:
- Clear
- Contains
- Count
- Peek: retorna o elemento do topo sem removê-lo.
- Pop: retorna e remove um elemento do topo.
- Push: adiciona um elemento ao topo.
Iteração em Queue e Stack
Queue e Stack são classes que não podem ser iteradas como um vetor, assim como pode ser feito com ArrayLists. Portanto, só é possível iterar Queues e Stacks através do foreach.
Hashtable
Hashtable é uma estrutura do tipo Dicionário/Mapa composta por pares chave/valor (key/value).
Métodos: Add, Clear, Contains, ContainsKey, ContainsValue, Count, Remove.
Observação: somente com foreach.
foreach (DictionaryEntry x in carro)
{
string montadora1 = (string)x.Key;
ArrayList item = (ArrayList)x.Value;
}SortedList
SortedList representa uma estrutura do tipo Dicionário/Mapa composta por pares chave/valor (key/value), ordenados pela chave e acessíveis tanto pela chave quanto pelo índice.
Métodos:
- Add
- Clear
- Contains
- ContainsKey
- ContainsValue
- Count
- Remove
- RemoveAt
- GetByIndex: retorna o valor armazenado no índice especificado.
- GetKey: retorna a chave armazenada no índice especificado.
- IndexOfKey: retorna o índice da chave especificada.
- IndexOfValue: retorna o índice do valor especificado.
- SetByIndex: troca o valor armazenado no índice especificado.
Exemplo: Interseção de ArrayLists
public ArrayList Intersecao(ArrayList AL1, ArrayList AL2)
{
ArrayList retorno = new ArrayList();
foreach (object o in AL1)
{
if (AL2.Contains(o))
{
if (!retorno.Contains(o))
retorno.Add(o);
}
}
return retorno;
}Exemplo: União de ArrayLists
public ArrayList Uniao(ArrayList AL1, ArrayList AL2)
{
ArrayList retorno = new ArrayList(AL1);
foreach (object o in AL2)
{
if (!retorno.Contains(o))
retorno.Add(o);
}
return retorno;
}Exemplo: Dicionário de Continentes e Países
continentes["América"].Add("Estados Unidos", 318892096);
foreach (KeyValuePair> continente in continentes)
{
Console.WriteLine(continente.Key + " : ");
foreach (KeyValuePair pais in continente.Value)
{
Console.WriteLine("Nome do país : " + pais.Key + ". População : " + pais.Value);
}
}Exemplo: Consulta de Sites com Hashtable
url.Add("www.gmail.com.br", "23.45.218.20");
foreach (DictionaryEntry x in url)
{
string sites = (string)x.Key;
string IP = (string)x.Value;
Console.WriteLine("Digite um site: ");
sites = Console.ReadLine();
if (url.Contains(sites))
{
Console.WriteLine("Site: " + sites + "\tIP: " + IP);
}
}