Tabela hash C# com exemplos
O que é Hashtable em C#?
Uma tabela hash é uma coleção especial usada para armazenar itens de valor-chave. Portanto, em vez de armazenar apenas um valor como pilha, lista de array e fila, a tabela hash armazena 2 valores. Esses 2 valores formam um elemento da tabela hash.
Abaixo estão alguns exemplos de como podem ser os valores de uma tabela hash.
{ "001" , ".Net" } { "002" , ".C#" } { "003" , "ASP.Net" }
Acima temos 3 pares de valores-chave. As chaves de cada elemento são 001, 002 e 003 respectivamente. Os valores de cada par de valores-chave são “. Net“, “C#” e “ASP.Net” respectivamente.
Vejamos as operações disponíveis para a coleção Hashtable com mais detalhes.
Declaração da Hashtable
A declaração de uma Hashtable é mostrada abaixo. Um Hashtable é criado com a ajuda do tipo de dados Hashtable. A palavra-chave “new” é usada para criar um objeto de uma Hashtable. O objeto é então atribuído à variável ht.
Hashtable ht = new Hashtable()
Adicionando elementos ao Hashtable
O método Add é usado para adicionar um elemento ao fila. A sintaxe geral da instrução é fornecida abaixo
HashTable.add("key","value")
1 exemplo:
Lembre-se de que cada elemento da tabela hash é composto por 2 valores, um é a chave e o outro é o valor.
Agora, vamos ver isso funcionando no nível do código. Todo o código mencionado abaixo será gravado em nosso aplicativo de console.
O código será gravado em nosso arquivo Program.cs. No programa abaixo, escreveremos o código para ver como podemos usar os métodos mencionados acima.
Por enquanto, em nosso exemplo, veremos apenas como podemos criar uma hashtable, adicionar elementos à hashtable e exibi-los de acordo.
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Hashtable ht = new Hashtable(); ht.Add("001",".Net"); ht.Add("002","C#"); ht.Add("003","ASP.Net"); ICollection keys = ht.Keys; foreach (String k in keys) { Console.WriteLine(ht[k]); } Console.ReadKey(); } } }
Explicação do código: -
- Primeiro, declaramos a variável hashtable usando o tipo de dados Hashtable usando a palavra-chave “Novo”. O nome da variável definida é 'ht'.
- Em seguida, adicionamos elementos à tabela hash usando o método Add. Lembre-se de que precisamos adicionar um elemento chave e um elemento de valor ao adicionar algo à tabela hash.
- Não existe uma maneira direta de exibir os elementos de uma tabela hash.
- Para exibir a tabela hash, primeiro precisamos obter a lista de chaves (001, 002 e 003) da tabela hash.
- Isso é feito através da interface ICollection. Este é um tipo de dados especial que pode ser usado para armazenar as chaves de coleções de hashtable. Em seguida, atribuímos as chaves da coleção hashtable à variável 'keys'.
- A seguir, para cada valor-chave, obtemos o valor associado na tabela hash usando a instrução ht[k].
Se o código acima for inserido corretamente e o programa for executado, a seguinte saída será exibida.
Saída:
Vejamos mais alguns métodos disponíveis para tabelas hash.
ContémChave
Este método é usado para verificar se uma chave está presente na Hashtable. Abaixo está a sintaxe geral desta instrução. A instrução retornará verdadeiro se a chave existir, caso contrário, retornará o valor falso.
Hashtable.Containskey(key)
ContémValor
Este método é usado para verificar se um valor está presente na tabela Hash. Abaixo está a sintaxe geral desta instrução. A instrução retornará verdadeiro se o Valor existir, caso contrário, retornará o valor falso.
Hashtable.ContainsValue(value)
2 exemplo:
Vamos mudar o código em nosso Aplicação da consola para mostrar como podemos usar os métodos “Containskey” e “ContainsValue”.
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Hashtable ht = new Hashtable(); ht.Add("001",".Net"); ht.Add("002","C#"); ht.Add("003","ASP.Net"); Console.WriteLine(ht.ContainsKey("001")); Console.WriteLine(ht.ContainsValue("C#")); Console.ReadKey(); } } }
Explicação do código: -
- Primeiro, usamos o método ContainsKey para ver se a chave está presente na tabela hash. Este método retornará verdadeiro se a chave estiver presente na tabela hash. Este método deve retornar verdadeiro, pois a chave existe na tabela hash.
- Em seguida, usamos o método ContainsValue para ver se o valor está presente na tabela hash. Este método retornará 'true', pois o valor existe na tabela hash.
Se o código acima for inserido corretamente e o programa for executado, a seguinte saída será exibida.
Saída:
Na saída, você pode ver claramente que tanto a chave quanto o valor pesquisado estão presentes na tabela hash.
Resumo
Um Hashtable é usado para armazenar elementos que compreendem pares de valores-chave. Para acessar o valor de um elemento, você precisa saber a chave do elemento.