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.

Tabela hash em C#

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: -

  1. Primeiro, declaramos a variável hashtable usando o tipo de dados Hashtable usando a palavra-chave “Novo”. O nome da variável definida é 'ht'.
  2. 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.
  3. 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'.
  1. 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:

Tabela hash em C#

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”.

Tabela hash em C#

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: -

  1. 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.
  2. 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:

Tabela hash em C#

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.