Saltar al contenido principal
Publicado el

Clase Hashtable en Java

Compartir:

Introducción

La Hashtable es una de las primeras estructuras de datos proporcionadas por Java, presente desde su primera versión. Su capacidad para almacenar pares clave-valor la hace indispensable para muchas aplicaciones que necesitan un almacenamiento y una recuperación de datos eficientes.

Características de la Clase Hashtable

  1. Sincronizada: A diferencia de HashMap, la Hashtable es thread-safe, lo que significa que múltiples hilos pueden compartir una única Hashtable sin necesidad de sincronización adicional.
  2. No permite valores nulos: En la Hashtable, no se pueden tener claves ni valores nulos, lo que supone una diferencia significativa respecto a otras estructuras de datos como HashMap.
  3. Eficiencia: Mediante una técnica de hashing, las Hashtables garantizan tiempos de acceso casi constantes, lo que hace que la recuperación de valores sea extremadamente rápida.
  4. Capacidad y Factor de Carga: La Hashtable tiene un constructor que acepta tanto la capacidad inicial como el factor de carga. Esto permite optimizar la tabla en términos de tamaño y eficiencia.

Métodos Principales

Además de los métodos básicos de inserción y recuperación, la Hashtable ofrece una variedad de métodos útiles:

  • clear(): Limpia la tabla.
  • contains(): Comprueba si un valor está presente.
  • containsKey(): Comprueba la presencia de una clave específica.
  • containsValue(): Similar a contains(), pero más claro en su intención.
  • get(): Recupera un valor a partir de la clave proporcionada.
  • isEmpty(): Comprueba si la tabla está vacía.
  • keys(): Devuelve una enumeración de las claves de la tabla.
  • size(): Devuelve el número de pares clave-valor de la tabla.
package com.caffeinealgorithm.programaremjava;

import java.util.Hashtable;

public class ClaseHashtable {
  private Hashtable<String, Integer> personas = new Hashtable<>();

  public void Run() {
    personas.put("Nelson Silva", 28);
    personas.put("Larissa Fernandes", 37);
    personas.put("Pedro Henrique", 52);
    personas.put("Raquel Soares", 68);

    personas.replace("Pedro Henrique", 100);
    personas.remove("Larissa Fernandes");
    // personas.clear();

    System.out.printf("Nombres de las personas: %s\n", personas.keySet());
    System.out.printf("Edades de las personas: %s", personas.values());
  }
}

/*
  Nombres de las personas: [Nelson Silva, Raquel Soares, Pedro Henrique]
  Edades de las personas: [28, 68, 100]
*/

Aplicabilidad

Dada su naturaleza sincronizada, la Hashtable es ideal para aplicaciones en las que múltiples hilos puedan intentar acceder y modificar datos de forma simultánea. También se utiliza con frecuencia en aplicaciones que requieren altas tasas de consulta y bajas tasas de inserción/actualización.

Conclusión

Dominar la clase Hashtable y sus matices es fundamental para los desarrolladores Java. Esta estructura de datos ha resistido la prueba del tiempo y sigue siendo relevante en muchos escenarios de programación. Invertir tiempo en comprender su funcionamiento y sus características puede traducirse en código más eficiente y robusto en tus aplicaciones.

Happy coding!