Diferencia entre Hashtable y Diccionario

los diferencia principal entre Hashtable y Dictionary es que el Hashtable es una estructura de datos de tipo débil, por lo que es posible agregar claves y valores de cualquier tipo, mientras que el Diccionario es una estructura de datos de tipo fuerte, por lo que solo es posible agregar los elementos que satisfacen los tipos de datos especificados para clave y valor.

Hashtable y diccionario son dos estructuras de datos principales. Ambos pueden contener datos como pares de valores clave. Un Hashtable o un Diccionario solo pueden contener claves únicas. El programador puede encontrar o eliminar un valor específico con la tecla. Hashtable no es muy tipado. Por lo tanto, el programador puede agregar cualquier elemento del par clave-valor al Hashtable. Por otro lado, el Diccionario está fuertemente tipado. El programador debe especificar los tipos de datos de las claves y valores. No es posible agregar elementos que no satisfagan los tipos de datos dados. Por ejemplo, si el diccionario tiene un tipo genérico. , el programador solo puede agregar elementos con claves de tipo int y valores de tipo de cadena.

Áreas clave cubiertas

1. ¿Qué es el tipo de datos genéricos?
     - Definición
2. Que es Hashtable
     - Definición, Funcionalidad
3. Que es el diccionario
     - Definición, Funcionalidad
4. Diferencia entre Hashtable y Diccionario
     - Comparación de diferencias clave

Términos clave

Diccionario, Hashtable, Estructuras de datos

¿Qué es el tipo de datos genéricos?

Un tipo de datos genérico es un tipo de datos que permite al usuario definir clases y métodos con marcadores de posición. Los compiladores como C # pueden reemplazar los marcadores de posición con el tipo de datos especificado en el momento de la compilación. Se utiliza para crear clases y métodos de propósito general. Al definir una clase genérica, el programador debe usar corchetes angulares (<>). Estos paréntesis declaran una clase o método como tipo genérico.

Que es Hashtable

Un Hashtable es una estructura de datos que implementa un tipo de datos abstractos de matriz asociativa, una estructura que puede asignar la clave a los valores. No es un tipo de datos genérico. Consulte un fragmento de código de la siguiente manera.

Figura 1: programa C # con Hashtable

En el programa anterior, números Es un objeto de tipo Hashtable. Los pares clave-valor se agregan al hashtable. De la declaración 15 a 17, las claves son de tipo int y los valores son de tipo cadena. En la declaración 18, la clave y el valor son cadenas. Un Hashtable es una estructura de datos mecanografiada semanalmente. Por lo tanto, el programador puede agregar claves y valores de cualquier tipo al Hashtable.

Figura 2: Salida del programa HashTable

La salida del programa es la anterior. The Hashtable no imprime los registros de acuerdo con el orden en que se agregaron los elementos. Por lo tanto, no mantiene el pedido insertado..

Que es un diccionario

Un diccionario utiliza el concepto de Hashtable. Es un tipo de datos genérico. Consulte el siguiente programa. nombres es un objeto de tipo Diccionario. Tiene tipos de datos específicos para almacenar por claves y valores. Según este programa, los tipos genéricos se definen como . Por lo tanto, al agregar elementos al diccionario, tanto las claves como los valores deben ser de tipo cadena.

Figura 3: Programa C # con Diccionario

Todos los elementos agregados al diccionario anterior tienen pares de clave y valor de tipo Cadena. La impresión de la clave y los valores en la consola dará un resultado similar al de la figura 4. Al recuperar los elementos del Diccionario, se imprimirán los registros en el mismo orden en que se agregaron los elementos. Por lo tanto, mantiene el orden insertado..

Figura 4: Salida del programa del diccionario

En general, el diccionario es de ejecución rápida pero no proporciona seguridad para subprocesos.

Diferencia entre Hashtable y Diccionario

Definición

Un Hashtable es una estructura de datos que implementa un tipo de datos abstractos de matriz asociativa, una estructura que puede asignar la clave a los valores. Un Diccionario es una estructura de datos basada en Hashtable que almacena valores en base a claves.

Añadiendo elementos

Además, Hashtable es una estructura de datos de tipo débil. Por lo tanto, el programador puede agregar claves y valores de cualquier tipo de objeto al Hashtable. Un diccionario es una estructura de datos fuertemente tipada. (

Tipo

Además, Hashtable no es genérico, mientras que el Diccionario es de tipo genérico..

Velocidad de ejecución

Además, hay boxeo y unboxing en Hashtable pero no en Dictionary. El Diccionario consume una memoria mínima y se ejecuta más rápido que el Hashtable.

Recuperando los elementos

Recuperar los elementos en el Hashtable no mantiene el orden insertado. Por otro lado, recuperar los elementos de un Diccionario mantiene el orden insertado.

Seguridad del hilo

Por otra parte, Hashtable proporciona más seguridad de hilo. Admite varios subprocesos de lectura y un único subproceso de escritura. Diccionario no proporciona seguridad de subprocesos. Para implementar la seguridad de subprocesos, el programador debe escribir su propio código sincronizado.

Ejemplo de sintaxis

Hashtable ht = new Hashtable ();

Diccionario diccionario = nuevo diccionario();.

Conclusión

La diferencia entre Hashtable y Dictionary es que Hashtable es una estructura de datos de tipo débil, por lo que es posible agregar claves y valores de cualquier tipo, mientras que el Diccionario es una estructura de datos de tipo fuerte, por lo que solo es posible agregar los elementos que cumplen con los requisitos especificados. Tipos de datos para clave y valor.

Referencia:

1. "C # Hashtable Class." Www.tutorialspoint.com, Tutorials Point, 21 de julio de 2018, disponible aquí.
2. “C # Hashtable”. Tipos de datos en C #, Tutorials Teacher. Disponible aquí.
3. "C # Dictionary - Javatpoint". Www.javatpoint.com, disponible aquí.