C# Hashtable con ejemplos

Una tabla hash es una colección de pares clave/valor que se organizan en función del código hash de la clave. O, en otras palabras, se usa una tabla hash para crear una colección que usa una tabla hash para el almacenamiento. Por lo general, optimizó la búsqueda calculando el código hash de cada clave y almacenándolo en otra cesta automáticamente y cuando accede al valor de la tabla hash en ese momento, hace coincidir el código hash con la clave especificada. Es el tipo de colección no genérico que se define en el espacio de nombres System.Collections

Puntos importantes: 

  • En Hashtable, la clave no puede ser nula, pero el valor puede serlo.
  • En Hashtable, los objetos clave deben ser inmutables siempre que se usen como claves en Hashtable.
  • La capacidad de un Hashtable es el número de elementos que puede contener Hashtable.
  • Cada objeto clave en Hashtable proporciona una función hash.
  • La clase Hashtable implementa las interfaces IDictionary , ICollection , IEnumerable , ISerializable , IDeserializationCallback e ICloneable .
  • En hashtable, puede almacenar elementos del mismo tipo y de diferentes tipos.
  • Los elementos de la tabla hash que es un par clave/valor se almacenan en DictionaryEntry, por lo que también puede convertir los pares clave/valor en una DictionaryEntry .
  • En Hashtable, la clave debe ser única. No se permiten llaves duplicadas.

¿Cómo crear una tabla Hash?

La clase Hashtable proporciona 16 tipos diferentes de constructores que se usan para crear una tabla hash, aquí solo usamos el constructor Hashtable() . Para leer más sobre los constructores de Hashtable, puede consultar C# | Clase Hashtable Este constructor se usa para crear una instancia de la clase Hashtable que está vacía y tiene la capacidad inicial, el factor de carga, el proveedor de código hash y el comparador predeterminados. Ahora, veamos cómo crear una tabla hash usando el constructor Hashtable():

Paso 1: incluya el espacio de nombres System.Collections en su programa con la ayuda de la palabra clave: 

using System.Collections;

Paso 2: Cree una tabla hash usando la clase Hashtable como se muestra a continuación: 

Hashtable hashtable_name = new Hashtable();

Paso 3: si desea agregar un par clave/valor en su tabla hash, use el método Add() para agregar elementos en su tabla hash. Y también puede almacenar un par clave/valor en su tabla hash sin usar el método Add()

Ejemplo: 

C#

// C# program to illustrate how
// to create a hashtable
using System;
using System.Collections;
 
class GFG {
 
    // Main Method
    static public void Main()
    {
 
        // Create a hashtable
        // Using Hashtable class
        Hashtable my_hashtable1 = new Hashtable();
 
        // Adding key/value pair
        // in the hashtable
        // Using Add() method
        my_hashtable1.Add("A1", "Welcome");
        my_hashtable1.Add("A2", "to");
        my_hashtable1.Add("A3", "GeeksforGeeks");
 
        Console.WriteLine("Key and Value pairs from my_hashtable1:");
 
        foreach(DictionaryEntry ele1 in my_hashtable1)
        {
            Console.WriteLine("{0} and {1} ", ele1.Key, ele1.Value);
        }
 
        // Create another hashtable
        // Using Hashtable class
        // and adding key/value pairs
        // without using Add method
        Hashtable my_hashtable2 = new Hashtable() {
                                      {1, "hello"},
                                          {2, 234},
                                        {3, 230.45},
                                         {4, null}};
 
        Console.WriteLine("Key and Value pairs from my_hashtable2:");
 
        foreach(var ele2 in my_hashtable2.Keys)
        {
            Console.WriteLine("{0}and {1}", ele2,
                            my_hashtable2[ele2]);
        }
    }
}
Producción: 

Key and Value pairs from my_hashtable1:
A3 and GeeksforGeeks 
A2 and to 
A1 and Welcome 
Key and Value pairs from my_hashtable2:
4and 
3and 230.45
2and 234
1and hello

 

¿Cómo eliminar elementos de la tabla hash?

En Hashtable, puede eliminar elementos de la tabla hash. La clase Hashtable proporciona dos métodos diferentes para eliminar elementos y los métodos son:

  • Borrar : este método se utiliza para eliminar todos los objetos de la tabla hash.
  • Eliminar : este método se utiliza para eliminar el elemento con la clave especificada de la tabla hash.

Ejemplo:

C#

// C# program to illustrate how
// remove elements from the hashtable
using System;
using System.Collections;
 
class GFG {
 
    // Main Method
    static public void Main()
    {
 
        // Create a hashtable
        // Using Hashtable class
        Hashtable my_hashtable = new Hashtable();
 
        // Adding key/value pair
        // in the hashtable
        // Using Add() method
        my_hashtable.Add("A1", "Welcome");
        my_hashtable.Add("A2", "to");
        my_hashtable.Add("A3", "GeeksforGeeks");
 
        // Using remove method
        // remove A2 key/value pair
        my_hashtable.Remove("A2");
 
        Console.WriteLine("Key and Value pairs :");
 
        foreach(DictionaryEntry ele1 in my_hashtable)
        {
            Console.WriteLine("{0} and {1} ", ele1.Key, ele1.Value);
        }
 
        // Before using Clear method
        Console.WriteLine("Total number of elements present"+
                 " in my_hashtable:{0}", my_hashtable.Count);
 
        my_hashtable.Clear();
 
        // After using Clear method
        Console.WriteLine("Total number of elements present in"+
                       " my_hashtable:{0}", my_hashtable.Count);
    }
}
Producción: 

Key and Value pairs :
A3 and GeeksforGeeks 
A1 and Welcome 
Total number of elements present in my_hashtable:2
Total number of elements present in my_hashtable:0

 

¿Cómo verificar la disponibilidad del par clave/valor en la tabla hash?

En hashtable, puede verificar si el par dado está presente o no usando los siguientes métodos:

  • Contiene : este método se utiliza para verificar si Hashtable contiene una clave específica.
  • Contiene clave : este método también se usa para verificar si Hashtable contiene una clave específica.
  • Contiene valor : este método se utiliza para verificar si Hashtable contiene un valor específico.

Ejemplo: 

C#

// C# program to illustrate how
// to check key/value present
// in the hashtable or not
using System;
using System.Collections;
 
class GFG {
 
    // Main Method
    static public void Main()
    {
 
        // Create a hashtable
        // Using Hashtable class
        Hashtable my_hashtable = new Hashtable();
 
        // Adding key/value pair in the hashtable
        // Using Add() method
        my_hashtable.Add("A1", "Welcome");
        my_hashtable.Add("A2", "to");
        my_hashtable.Add("A3", "GeeksforGeeks");
 
        // Determine whether the given
        // key present or not
        // using Contains method
        Console.WriteLine(my_hashtable.Contains("A3"));
        Console.WriteLine(my_hashtable.Contains(12));
        Console.WriteLine();
 
        // Determine whether the given
        // key present or not
        // using ContainsKey method
        Console.WriteLine(my_hashtable.ContainsKey("A1"));
        Console.WriteLine(my_hashtable.ContainsKey(1));
        Console.WriteLine();
 
        // Determine whether the given
        // value present or not
        // using ContainsValue method
        Console.WriteLine(my_hashtable.ContainsValue("geeks"));
        Console.WriteLine(my_hashtable.ContainsValue("to"));
    }
}
Producción: 

True
False

True
False

False
True

 

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *