Diferença entre Hashtable e Dicionário

Índice:

Anonim

o principal diferença entre Hashtable e Dicionário é que o Hashtable é uma estrutura de dados fracamente tipada, portanto, é possível adicionar chaves e valores de qualquer tipo, enquanto o Dicionário é uma estrutura de dados fortemente tipada, portanto, só é possível adicionar os elementos que satisfazem os tipos de dados especificados para chave e valor.

Hashtable e dicionário são duas estruturas de dados principais. Ambos podem conter dados como pares de valores-chave. Um Hashtable ou um Dicionário podem conter apenas chaves exclusivas. O programador pode encontrar ou remover um valor específico usando a chave. Hashtable não é fortemente tipado. Portanto, o programador pode adicionar qualquer elemento do par de valores-chave ao Hashtable. Por outro lado, o Dicionário é fortemente tipado. O programador deve especificar os tipos de dados das chaves e valores. Não é possível adicionar elementos que não satisfaçam os tipos de dados fornecidos. Por exemplo, se o Dicionário tiver tipo genérico, o programador só pode adicionar elementos com chaves de tipo int e valores de tipo de string.

Dicionário, Hashtable, Estruturas de Dados

O que é tipo de dado genérico

Um tipo de dados genérico é um tipo de dados que permite ao usuário definir classes e métodos com espaços reservados. Compiladores como C # podem substituir os espaços reservados com o tipo de dados especificado em tempo de compilação. É usado para criar classes e métodos de uso geral. Ao definir uma classe genérica, o programador deve usar colchetes angulares (). Esses colchetes declaram uma classe ou método como tipo genérico.

O que é Hashtable

Uma Hashtable é uma estrutura de dados que implementa um tipo de dados abstratos de matriz associativa, uma estrutura que pode mapear chaves para valores. Não é um tipo de dados genérico. Consulte um trecho de código da seguinte maneira.

Figura 1: programa C # com Hashtable

No programa acima, os números são um objeto do tipo Hashtable. Os pares de valores-chave são adicionados à tabela de hash. Da declaração 15 a 17, as chaves são do tipo int e os valores são do tipo string. Na afirmação 18, a chave e o valor são strings. Um Hashtable é uma estrutura de dados digitada semanalmente. Portanto, o programador pode adicionar chaves e valores de qualquer tipo ao Hashtable.

Figura 2: Saída do programa HashTable

A saída do programa é como acima. A Hashtable não imprime os registros de acordo com a ordem em que os elementos foram adicionados. Portanto, não mantém a ordem inserida.

O que é um dicionário

Um dicionário usa o conceito de Hashtable. É um tipo de dado genérico. Consulte o programa abaixo. names é um objeto do tipo Dicionário. Possui tipos de dados específicos para armazenar chaves e valores. De acordo com este programa, os tipos genéricos são definidos como. Portanto, ao adicionar elementos ao dicionário, as chaves e os valores devem ser do tipo string.

Figura 3: Programa C # com Dicionário

Todos os elementos adicionados ao dicionário acima possuem pares de chave e valor do tipo String. Imprimir a chave e os valores no console fornecerá uma saída semelhante à da figura 4. Recuperar os itens do Dicionário imprimirá os registros na mesma ordem em que os elementos foram adicionados. Portanto, ele mantém o pedido inserido.

Figura 4: Saída do Programa de Dicionário

No geral, o Dicionário é rápido na execução, mas não oferece segurança de thread.

Diferença entre Hashtable e Dicionário

Definição

Uma Hashtable é uma estrutura de dados que implementa um tipo de dados abstratos de matriz associativa, uma estrutura que pode mapear chaves para valores. Um Dicionário é uma estrutura de dados baseada em Hashtable que armazena valores com base em chaves.

Adicionando Elementos

Além disso, Hashtable é uma estrutura de dados fracamente tipada. Portanto, o programador pode adicionar chaves e valores de qualquer tipo de objeto ao Hashtable. Um dicionário é uma estrutura de dados fortemente tipada. (

Modelo

Além disso, o Hashtable não é genérico, enquanto o Dicionário é do tipo genérico.

Velocidade de Execução

Além disso, há boxing e unboxing em Hashtable, mas não no Dicionário. O Dicionário consome memória mínima e é executado mais rápido do que o Hashtable.

Recuperando os Elementos

Recuperar os elementos na tabela de hash não mantém a ordem inserida. Por outro lado, recuperar os elementos de um Dicionário mantém a ordem inserida.

Segurança da linha

Sintaxe de exemplo

Hashtable ht = new Hashtable ();

Dicionário de dicionário = novo dicionário ();.

Conclusão

A diferença entre Hashtable e Dicionário é que a Hashtable é uma estrutura de dados fracamente tipada, então é possível adicionar chaves e valores de qualquer tipo, enquanto o Dicionário é uma estrutura de dados fortemente tipada, então só é possível adicionar os elementos que satisfaçam o especificado tipos de dados para chave e valor.

Referência:

1. “Classe C # Hashtable.” Www.tutorialspoint.com, Tutorials Point, 21 de julho de 2018, disponível aqui.2. “C # Hashtable.” Tipos de dados em C #, professor de tutoriais. Disponível aqui.3. “Dicionário C # - Javatpoint.” Www.javatpoint.com, disponível aqui.

Diferença entre Hashtable e Dicionário