c collections arraylist
Coleções C # são as classes especializadas para armazenar e modificar dados. Neste tutorial, você aprenderá sobre coleções C # como ArrayList, HashTable e SortedList com exemplos:
Eles servem a diferentes propósitos, como alocação dinâmica de memória, avaliação de dados não sequenciais, etc.
Todas essas classes usam a classe de objeto que é a classe base para todos os outros tipos de dados.
=> Assista à série completa de treinamento C # aqui
O que você aprenderá:
framework de teste ponta a ponta transferidor para aplicativos angularjs
Coleções C # e seu uso
C # ArrayList
ArrayList faz parte das coleções em C #. É usado para conter dados de qualquer tipo de dado. É semelhante a uma matriz em C #, mas não tem um tamanho definido. Seu tamanho aumenta automaticamente à medida que mais elementos são adicionados a ele.
Como inicializar um ArrayList?
ArrayList pode ser inicializado usando a palavra-chave “ArrayList”.
ArrayList arrList = new ArrayList();
Como adicionar elementos em um ArrayList?
Você pode adicionar um único item em uma lista de matriz usando o método Add () e um intervalo de elementos ou vários elementos de outra coleção usando o método AddRange ().
Exemplo:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Collections; namespace ConsoleApp1 { class Program { static void Main(string[] args) { ArrayList arrList = new ArrayList(); arrList.Add(7896); arrList.Add('Seven'); Console.ReadLine(); } } }
Aqui, você pode ver que usamos o método ArrayList.Add (). Como você pode notar, adicionamos tanto inteiros quanto strings na mesma lista de arrays. Isso é possível porque uma lista de matriz é de tipo de dados não genérico, ou seja, pode conter um elemento de qualquer tipo de dados fornecido.
Como acessar um elemento de um ArrayList?
Um elemento de lista de matriz pode ser acessado de forma semelhante a uma matriz, ou seja, usando o índice. Mas como é um tipo não genérico, primeiro precisamos convertê-lo em um tipo de dados adequado ou usar a palavra-chave var ao acessar um valor da Lista de matrizes.
Exemplo:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Collections; namespace ConsoleApp1 { class Program { static void Main(string[] args) { ArrayList arrList = new ArrayList(); arrList.Add(7896); arrList.Add('Seven'); //casted and retrieved data int first_index = (int)arrList[0]; string second_index = (string)arrList[1]; Console.WriteLine('The first index value is : ' + first_index); Console.WriteLine('The second index value is : ' + second_index); Console.ReadLine(); } } }
No exemplo acima, recuperamos os dados usando o índice da lista de arrays e depois os lançamos no tipo de dados apropriado. Os resultados foram então impressos no console como saída.
A saída para o programa acima será:
Resultado
O primeiro valor de índice é: 7896
O segundo valor de índice é: Sete
Como inserir um elemento em ArrayList?
Para inserir um elemento na ArrayList em um ponto ou índice especificado. o método Insert () é usado.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Collections; namespace ConsoleApp1 { class Program { static void Main(string[] args) { ArrayList arrList = new ArrayList(); arrList.Add(7896); arrList.Add('Seven'); //casted and retrieved data int first_index = (int)arrList[0]; string second_index = (string)arrList[1]; Console.WriteLine('The first index value is : ' + first_index); Console.WriteLine('The second index value is : ' + second_index); arrList.Insert(1, 'Eight'); second_index = (string)arrList[1]; Console.WriteLine('The second index value is : ' + second_index); Console.ReadLine(); } } }
Portanto, inserimos uma nova string no índice 1 usando o método insert (). Portanto, se executarmos o programa acima, obteremos a seguinte saída:
Resultado
O primeiro valor de índice é: 7896
O segundo valor de índice é: Sete
O segundo valor de índice é: Oito
Como remover um elemento de ArrayList?
Um elemento pode ser removido de ArrayList usando o método Remove (). O método Remove aceita um parâmetro, ou seja, o valor que precisa ser removido da matriz.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Collections; namespace ConsoleApp1 { class Program { static void Main(string[] args) { ArrayList arrList = new ArrayList(); arrList.Add(7896); arrList.Add('Seven'); //casted and retrieved data int first_index = (int)arrList[0]; string second_index = (string)arrList[1]; Console.WriteLine('The first index value is : ' + first_index); Console.WriteLine('The second index value is : ' + second_index); arrList.Insert(1, 'Eight'); second_index = (string)arrList[1]; Console.WriteLine('The second index value is : ' + second_index); arrList.Remove(7896); var data = arrList[0]; Console.WriteLine('The value at 0 index is : ' + data); Console.ReadLine(); } } }
O método remove remove o valor fornecido da lista. Quando o valor é removido do índice fornecido, o valor subsequente move um índice para cima para preencher a lacuna. Como estamos removendo índices 0, o valor do índice 1 se moverá e preencherá o vazio em 0.
O resultado do seguinte programa será:
Resultado
O primeiro valor de índice é: 7896
O segundo valor de índice é: Sete
O segundo valor de índice é: Oito
O valor no índice 0 é: Oito
Como remover o elemento da lista usando o índice?
O usuário pode remover um elemento da lista de um índice específico usando o método RemoveAt (). RemoveAt () aceita um único parâmetro com um número de índice do qual o elemento deve ser removido. Semelhante ao método Remove, remover um elemento do meio empurrará o próximo elemento para se mover um passo para cima para preencher a lacuna.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Collections; namespace ConsoleApp1 { class Program { static void Main(string[] args) { ArrayList arrList = new ArrayList(); arrList.Add(7896); arrList.Add('Seven'); //casted and retrieved data int first_index = (int)arrList[0]; string second_index = (string)arrList[1]; Console.WriteLine('The first index value is : ' + first_index); Console.WriteLine('The second index value is : ' + second_index); arrList.Insert(1, 'Eight'); second_index = (string)arrList[1]; Console.WriteLine('The second index value is : ' + second_index); arrList.RemoveAt(1); var data = arrList[1]; Console.WriteLine('The value at 1 index is : ' + data); Console.ReadLine(); } } }
No exemplo acima, usamos RemoveAt para remover o índice 1. Portanto, o elemento no índice 2 deve mover-se para o índice 1 para substituir a lacuna.
O resultado do seguinte programa será:
Resultado
O primeiro valor de índice é: 7896
O segundo valor de índice é: Sete
O segundo valor de índice é: Oito
O valor em 1 índice é: Sete
Como classificar e reverter um ArrayList?
ArrayList oferece dois métodos diferentes para classificação e operações reversas. Existe apenas uma condição, ou seja, todos os elementos dentro da lista de matriz devem ter o mesmo tipo de dados para comparação com um comparador, caso contrário, ocorrerá um erro de tempo de execução.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Collections; namespace ConsoleApp1 { class Program { static void Main(string[] args) { ArrayList arrList = new ArrayList(); arrList.Add(7); arrList.Add(4); arrList.Add(5); arrList.Add(1); arrList.Add(3); Console.WriteLine('Original Array List'); foreach (var v in arrList) { Console.Write(v + ' '); } //sorting an array list Console.WriteLine(); Console.WriteLine('Sorted Array List'); arrList.Sort(); foreach (var srt in arrList) { Console.Write(srt + ' '); } //Reversing an array list Console.WriteLine(); Console.WriteLine('Reversed Array List'); arrList.Reverse(); foreach (var rvrs in arrList) { Console.Write(rvrs + ' '); } Console.ReadLine(); } } }
No programa acima, primeiro criamos uma lista de matriz com tipo de dados inteiro e, em seguida, usamos o método de classificação para classificar a lista e o método reverso para reverter a lista classificada.
Portanto, o resultado da lista a seguir será:
Resultado
Lista de Array Original
7 4 5 1 3
Lista de Array Classificada
1 3 4 5 7
Lista de Array Invertido
7 5 4 3 1
C # HashTable
O namespace System.Collections em C # contém Hashtable que é bastante semelhante ao Dicionário. Hashtable armazena dados na forma de pares de valores-chave.
Ele faz isso internamente atribuindo um código hash à chave hash internamente e sempre que os dados são acessados, ele combina o código hash com uma chave hash para recuperar os dados. Cada item da tabela terá um par de valores-chave
Como inicializar um HashTable?
Uma HashTable pode ser inicializada usando a palavra-chave HashTable e, em seguida, criando uma instância dela.
Hashtable hashtbl = new Hashtable();
Como adicionar elementos a um HashTable?
Os elementos podem ser adicionados ao HashTable usando o método Add (). Ele permite que os usuários adicionem um item com sua chave e valor. Não é importante descrever o tipo de dados da chave ou valor. Ao adicionar elementos ao HashTable, você deve se lembrar que as chaves não podem conter nulos, cujos valores podem ser nulos.
HashTable.Add (chaves, valores);
Exemplo:
class Program { static void Main(string[] args) { Hashtable hashtbl = new Hashtable(); hashtbl.Add('Number',1); hashtbl.Add('Car', 'Ferrari'); hashtbl.Add(8, 'eight'); } }
Como você pode ver, adicionamos diferentes tipos de dados como chaves e valores.
Como acessar os elementos presentes em um HashTable?
Pode-se recuperar o valor de qualquer chave do Hashtable usando um indexador. Mas o indexador também requer uma chave para acessar e recuperar o valor da tabela.
Vamos adicionar um pequeno snippet de código ao programa acima para buscar valores:
class Program { static void Main(string[] args) { Hashtable hashtbl = new Hashtable(); hashtbl.Add('Number',1); hashtbl.Add('Car', 'Ferrari'); hashtbl.Add(8, 'eight'); int value1 = (int)hashtbl['Number']; String value2 = (string)hashtbl['Car']; String value3 = (string)hashtbl[8]; Console.WriteLine(value1); Console.WriteLine(value2); Console.WriteLine(value3); Console.ReadLine(); } }
Agora, se executarmos isso, a seguinte saída será produzida:
1
Ferrari
oito
No programa acima, lançamos o valor de todas as chaves para um determinado tipo de dados, para remover qualquer erro de compilação que possa ocorrer. Isso ocorre porque sendo uma coleção não genérica, Hashtable não contém informações sobre o tipo de dados de nenhum de seus conteúdos, ou seja, chaves e valores.
perguntas e respostas da entrevista sql para caloiros
Portanto, se tentarmos obter o compilador de dados diretamente, ficaremos confusos sobre o tipo de dados e apresentaremos um erro.
Como remover um elemento do Hashtable?
Digamos que queremos remover um par de valores-chave específico da Hashtable. Para conseguir isso, temos que usar o método Remove () oferecido pelas coleções. O método Remove exclui um determinado par de valores-chave da tabela de hash permanentemente.
Remover (chave);
Vamos adicionar o método Remove no programa acima para ter uma ideia:
class Program { static void Main(string[] args) { Hashtable hashtbl = new Hashtable(); hashtbl.Add('Number',1); hashtbl.Add('Car', 'Ferrari'); hashtbl.Add(8, 'eight'); int value1 = (int)hashtbl['Number']; String value2 = (string)hashtbl['Car']; String value3 = (string)hashtbl[8]; Console.WriteLine(value1); Console.WriteLine(value2); Console.WriteLine(value3); //now we remove a key hashtbl.Remove(8); //Lets try to find the remove key now String valueRemoved = (string)hashtbl[8]; Console.WriteLine('The value of the given key is :'+valueRemoved); Console.ReadLine(); } }
O resultado do programa acima será o seguinte.
1
Ferrari
oito
O valor da chave fornecida é:
Não, o valor é impresso no console, pois removemos a chave do Hashtable. Portanto, o valor da string de valueRemoved é nulo.
Se você quiser remover tudo da tabela de hash, o C # nos fornece outro método chamado Clear (). O método Remove exclui um par de valores-chave por vez, enquanto o método Clear exclui tudo do mapa de hash.
Vamos dar uma olhada no programa abaixo para fazer isso:
class Program { static void Main(string[] args) { Hashtable hashtbl = new Hashtable(); hashtbl.Add('Number',1); hashtbl.Add('Car', 'Ferrari'); hashtbl.Add(8, 'eight'); int value1 = (int)hashtbl['Number']; String value2 = (string)hashtbl['Car']; String value3 = (string)hashtbl[8]; Console.WriteLine(value1); Console.WriteLine(value2); Console.WriteLine(value3); //now we remove a key hashtbl.Remove(8); //Lets try to find the remove key now String valueRemoved = (string)hashtbl[8]; Console.WriteLine('The value of the given key is :'+valueRemoved); // clearing all data from the HashTable hashtbl.Clear(); Console.ReadLine(); } }
O programa acima irá remover todos os elementos da tabela de hash e irá deixá-la vazia.
Outros métodos importantes oferecidos por Hashtable são ContainsKey () e ContainsValue (). Ambos os métodos aceitam um argumento que é uma chave ou um valor e retornam um valor booleano. Portanto, se o parâmetro passado com este método estiver presente na tabela de hash, ele retornará um valor verdadeiro e se não estiver presente, será retornado falso.
C # SortedList
Como o nome sugere, SortedList contém dados classificados em ordem crescente. É semelhante ao Hashtable, pois contém um par de valores-chave semelhante. Todas as chaves inseridas ou adicionadas à SortedList são automaticamente organizadas em ordem crescente.
Como inicializar uma SortedList?
Uma SortedList pode ser inicializada usando a palavra-chave SortedList e criando uma instância de objeto para ela.
SortedList sortedList = new SortedList();
O objeto pode então ser usado para executar operações usando a propriedade e métodos SortedList.
Como adicionar um elemento a uma SortedList?
Você pode adicionar um elemento a uma SortedList usando o método Add (). Uma SortedList requer que você adicione uma chave e um valor. Você pode adicionar chaves e valores em qualquer ordem que desejar e a lista classificada organizará todos os elementos adicionados em ordem crescente.
class Program { static void Main(string[] args) { SortedList sortedList = new SortedList(); sortedList.Add(2, 'Two Pineapples'); sortedList.Add(4, 'Four Apples'); sortedList.Add(3, 'Three Lemons'); sortedList.Add(5, 'Five Mangoes'); sortedList.Add(1, 'One Tree'); Console.ReadLine(); } }
No programa acima, você pode ver que adicionamos inteiro como chave e string como valores. Você pode adicionar qualquer tipo de dados que desejar e na ordem que desejar. A SortedList irá organizá-lo em ordem crescente.
Semelhante ao HashTable, as chaves não podem ser nulas e todas as chaves devem ter o mesmo tipo de dados para comparação, caso contrário, ocorrerá um erro de compilação.
A lista Classificada classifica o elemento sempre que você os adiciona. Portanto, mesmo se você adicionar qualquer elemento após a classificação, ele irá classificar novamente e adicionar o elemento ao seu índice apropriado.
Como acessar os elementos de uma SortedList?
Um valor na lista classificada pode ser acessado usando a chave.
Vamos adicionar um código simples para buscar o valor de SortedList descrito no exemplo anterior:
class Program { static void Main(string[] args) { SortedList sortedList = new SortedList(); sortedList.Add(2, 'Two Pineapples'); sortedList.Add(4, 'Four Apples'); sortedList.Add(3, 'Three Lemons'); sortedList.Add(5, 'Five Mangoes'); sortedList.Add(1, 'One Tree'); string i = (string)sortedList[1]; string j = (string)sortedList[5]; string k = (string)sortedList[3]; Console.WriteLine(i); Console.WriteLine(j); Console.WriteLine(k); Console.ReadLine(); } }
A saída do snippet de código acima será:
Uma árvore
Cinco mangas
Três limões
No trecho de código acima, temos que converter o valor de todas as chaves para um determinado tipo de dados para remover qualquer erro de compilação que possa ocorrer com o tipo de dados do valor. Isso é feito para garantir que um erro de compilação não seja gerado, mesmo se algumas das chaves contiverem tipos de dados diferentes.
Como validar se uma determinada chave existe em uma SortedList?
Existem dois métodos embutidos, ou seja, Contém () e ContainsKey () que nos ajudam a determinar se uma determinada chave existe dentro de uma SortList. ConstainsValue () é outro método usado para determinar se um determinado valor está presente dentro da coleção ou não.
Vamos dar uma olhada em um programa simples para aprender mais sobre esses métodos.
class Program { static void Main(string[] args) { SortedList sortedList = new SortedList(); sortedList.Add(2, 'Two Pineapples'); sortedList.Add(4, 'Four Apples'); sortedList.Add(3, 'Three Lemons'); sortedList.Add(5, 'Five Mangoes'); sortedList.Add(1, 'One Tree'); //boolean value for key 5 bool key = sortedList.ContainsKey(5); //boolean value for vlaue 'One Tree' bool val = sortedList.ContainsValue('One Tree'); //Boolean value for unavailable key bool unKey = sortedList.ContainsKey(25); //Boolean value for unavailable value bool unVal = sortedList.ContainsValue('some randome value'); Console.WriteLine('The sorted list contains 5 key :' + key); Console.WriteLine('The sorted list contains One Tree value :' + val); Console.WriteLine('The sorted list contains 25 key :' +unKey); Console.WriteLine('The sorted list contains some random value:' + unVal); Console.ReadLine(); } }
O resultado do programa acima será:
A lista classificada contém 5 chaves: True
A lista classificada contém o valor One Tree: True
A lista classificada contém 25 chaves: False
A lista classificada contém algum valor aleatório: False
No programa acima, você pode ver claramente que se o valor ou chave estiver presente na Lista Classificada, um valor verdadeiro será retornado e, se estiver ausente, um valor falso será retornado.
Como remover um elemento da SortedList?
A lista classificada oferece os métodos Remove () e RemoveAt () para excluir qualquer elemento presente dentro de uma Lista Classificada. Remove aceita um único argumento com o nome da chave e RemoveAt também aceita um único argumento, mas com índice.
Ambos os métodos removem qualquer elemento presente na lista classificada com base no argumento.
como definir arquivos jar para abrir com java
Vamos dar uma olhada em um código simples para entendê-lo mais claramente.
class Program { static void Main(string[] args) { SortedList sortedList = new SortedList(); sortedList.Add(2, 'Two Pineapples'); sortedList.Add(4, 'Four Apples'); sortedList.Add(3, 'Three Lemons'); sortedList.Add(5, 'Five Mangoes'); sortedList.Add(1, 'One Tree'); //The Remove() method accepts key as argument and removes both the key and the value sortedList.Remove(1); //Now we will check if the key is present bool rmvKey = sortedList.ContainsKey(1); Console.WriteLine('The presence if the key is: ' + rmvKey); //The RemoveAt() method acceots index as argument and remove any key and value present at that index sortedList.RemoveAt(3); Console.ReadLine(); } }
O resultado do programa acima será:
A presença se a chave for: False
No programa acima, primeiro usamos o método Remove para remover um par de valores-chave usando a chave. Isso removerá qualquer par de valor-chave correspondente à chave fornecida no argumento. Em seguida, usamos o método ContainsKey para verificar se a chave removida não existe mais na lista classificada.
Na próxima linha, usamos o método RemoveAt que remove elementos usando o índice. Assim, como discutimos anteriormente, uma vez que o elemento específico será removido do índice, outro elemento será movido para reorganizar e manter a estrutura da lista classificada.
Conclusão
Coleções são classes dedicadas presentes na linguagem de programação C # para armazenar e operar dados. Eles são usados para realizar ações específicas, ou seja, para criar listas dinâmicas, Reverter, Classificar, etc. em um determinado conjunto de dados.
Neste tutorial, aprendemos sobre ArrayList, que é semelhante a uma matriz em alguns aspectos, mas não tem nenhum tamanho predefinido. Também aprendemos sobre HashTable que armazena dados em pares de valores-chave. Qualquer valor pode ser recuperado usando a chave.
Também aprendemos sobre a lista classificada, que é semelhante a um HashTable, mas classifica automaticamente todos os dados presentes dentro dela, em ordem crescente com base nas chaves.
Os dados dentro da Lista Classificada estão sempre em ordem crescente, ou seja, mesmo se você remover um elemento específico do meio ou adicionar um novo elemento à Lista Classificada, todos os dados serão organizados automaticamente em ordem crescente.
Código de amostra
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using SeleniumFrameWork.FrameworkEssentials; using SeleniumFrameWork.FrameWorkSupportModules; namespace ConsoleApp1 { class Program { static void Main(string[] args) { /* Array List Code */ ArrayList arrList = new ArrayList(); arrList.Add(7); arrList.Add(4); arrList.Add(5); arrList.Add(1); arrList.Add(3); Console.WriteLine('Original Array List'); foreach (var v in arrList) { Console.Write(v + ' '); } //sorting an array list Console.WriteLine(); Console.WriteLine('Sorted Array List'); arrList.Sort(); foreach (var srt in arrList) { Console.Write(srt + ' '); } //Reversing an array list Console.WriteLine(); Console.WriteLine('Reversed Array List'); arrList.Reverse(); foreach (var rvrs in arrList) { Console.Write(rvrs + ' '); } /* HashTable Code */ Hashtable hashtbl = new Hashtable(); hashtbl.Add('Number', 1); hashtbl.Add('Car', 'Ferrari'); hashtbl.Add(8, 'eight'); int value1 = (int)hashtbl['Number']; String value2 = (string)hashtbl['Car']; String value3 = (string)hashtbl[8]; Console.WriteLine(value1); Console.WriteLine(value2); Console.WriteLine(value3); //now we remove a key hashtbl.Remove(8); //Lets try to find the remove key now String valueRemoved = (string)hashtbl[8]; Console.WriteLine('The value of the given key is :' + valueRemoved); // clearing all data from the HashTable hashtbl.Clear(); /* Sorted List Code */ SortedList sortedList = new SortedList(); sortedList.Add(2, 'Two Pineapples'); sortedList.Add(4, 'Four Apples'); sortedList.Add(3, 'Three Lemons'); sortedList.Add(5, 'Five Mangoes'); sortedList.Add(1, 'One Tree'); string i = (string)sortedList[1]; string j = (string)sortedList[5]; string k = (string)sortedList[3]; Console.WriteLine(i); Console.WriteLine(j); Console.WriteLine(k); //boolean value for key 5 bool key = sortedList.ContainsKey(5); //boolean value for vlaue 'One Tree' bool val = sortedList.ContainsValue('One Tree'); //Boolean value for unavailable key bool unKey = sortedList.ContainsKey(25); //Boolean value for unavailable value bool unVal = sortedList.ContainsValue('some randome value'); Console.WriteLine('The sorted list contains 5 key :' + key); Console.WriteLine('The sorted list contains One Tree value :' + val); Console.WriteLine('The sorted list contains 25 key :' +unKey); Console.WriteLine('The sorted list contains some randome value:' + unVal); //The Remove() method accepts key as argument and removes both the key and the value sortedList.Remove(1); //Now we will check if the key is present bool rmvKey = sortedList.ContainsKey(1); Console.WriteLine('The presence if the key is: ' + rmvKey); //The RemoveAt() method acceots index as argument and remove any key and value present at that index sortedList.RemoveAt(3); Console.ReadLine(); } } }
=> Procure o Guia de treinamento Easy C # aqui
Leitura recomendada
- Tutorial Python DateTime com exemplos
- Cortar comando no Unix com exemplos
- Sintaxe de comando Unix Cat, opções com exemplos
- Uso do Cursor no MongoDB com Exemplos
- Comando Ls no Unix com exemplos
- Método MongoDB Sort () com exemplos
- Comando Grep no Unix com exemplos simples
- Uso de ObjectId () no MongoDB com exemplos