Publicado em

Classe Hashtable em Java

Partilhar:

Introdução

A Hashtable é uma das primeiras estruturas de dados fornecidas pelo Java, existente desde a sua primeira versão. A sua capacidade de armazenar pares chave-valor a torna indispensável para muitas aplicações que necessitam de armazenamento e recuperação eficientes de dados.

Características da Classe Hashtable

  1. Sincronizada: Ao contrário do HashMap, a Hashtable é thread-safe, o que significa que múltiplas threads podem compartilhar uma única Hashtable sem a necessidade de sincronização adicional.
  2. Não permite valores nulos: Na Hashtable, não se pode ter chaves ou valores nulos, o que é uma diferença significativa em relação a outras estruturas de dados, como o HashMap.
  3. Eficiência: Utilizando uma técnica de hashing, as Hashtables garantem tempos de acesso quase constantes, tornando a recuperação de valores extremamente rápida.
  4. Capacidade e Fator de Carga: A Hashtable tem um construtor que aceita tanto a capacidade inicial quanto o fator de carga. Isso permite otimizar a tabela em termos de tamanho e eficiência.

Métodos Principais

Além dos métodos básicos de inserção e recuperação, a Hashtable oferece uma variedade de métodos úteis:

  • clear(): Limpa a tabela.
  • contains(): Verifica se um valor está presente.
  • containsKey(): Verifica a presença de uma chave específica.
  • containsValue(): Similar ao contains(), mas mais claro na sua intenção.
  • get(): Recupera um valor com base na chave fornecida.
  • isEmpty(): Verifica se a tabela está vazia.
  • keys(): Retorna uma enumeração das chaves na tabela.
  • size(): Retorna o número de pares chave-valor na tabela.
package com.caffeinealgorithm.programaremjava;

import java.util.Hashtable;

public class ClasseHashtable {
  private Hashtable<String, Integer> pessoas = new Hashtable<>();

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

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

    System.out.printf("Nome das pessoas: %s\n", pessoas.keySet());
    System.out.printf("Idade das pessoas: %s", pessoas.values());
  }
}

/*
  Nome das pessoas: [Nelson Silva, Raquel Soares, Pedro Henrique]
  Idade das pessoas: [28, 68, 100]
*/

Aplicabilidade

Dada a sua natureza sincronizada, a Hashtable é ideal para aplicações onde múltiplas threads possam tentar acessar e modificar dados simultaneamente. Também é frequentemente usada em aplicações que requerem altas taxas de consulta e baixas taxas de inserção/atualização.

Conclusão

Dominar a classe Hashtable e suas nuances é fundamental para os desenvolvedores Java. Esta estrutura de dados tem resistido ao teste do tempo e continua sendo relevante em muitos cenários de programação. Investir tempo em entender seu funcionamento e características pode se traduzir em código mais eficiente e robusto nas suas aplicações.

Happy coding!