Las “tablas hash” (Hashtable).

Al igual que en el SortedList, los elementos están compuestos por una pareja (clave, valor). No obstante la tabla hash utiliza una “función de dispersión” para colocar los elementos de forma que NO podemos recorrer la tabla secuencialmente, pero por el contrario la búsqueda de elementos a partir del campo clave es muy rápido.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;

namespace TablaHash
{
    class Program
    {
        static void Main(string[] args)
        {

            
            // Creamos e insertamos datos 
            Hashtable miDiccio = new Hashtable();

            miDiccio.Clear();
            
            miDiccio.Add("byte", "8 bits");
            miDiccio.Add("pc", "personal computer");
            miDiccio.Add("PC", "ordenador personal");
            miDiccio.Add("kilobyte", "1024 bytes");
            miDiccio.Add("bit", "");

            miDiccio.Remove("PC");

            // Mostramos algún dato 
            Console.WriteLine("Cantidad de palabras en el diccionario: {0}",
            miDiccio.Count);
            if (miDiccio.ContainsKey("bit")) {
           
                Console.WriteLine("El significado de bit es: {0}",
                miDiccio["bit"]);
            }
            else
            {
                Console.WriteLine("No existe esa palabra!");
            }

            Console.ReadKey();
        }
    }
}

Otras posibilidades:

  • Remove. Borra un elemento de la tabla.
  • Clear. Vacía toda la tabla.
  • ContainsValue. Método que funciona más lento que buscar entre las claves con “Contains”.

La tabla Hash tiene una capacidad inicial que se va ampliando a medida que se necesita espacio. Si queremos inincializarla con un valor concreto porque sabemos aproximadamente el número de elementos en el constructor podemos incluir el parámetro.

 

Hashtable miDiccio = new Hashtable(500);