Diferencia entre hashtable y hashmap en Java

Mohammad Irfan 12 octubre 2023
  1. Hashtable vs HashMap
  2. Crear Hashtable en Java
  3. Crear HashMap en Java
  4. Almacenar nulo en HashMap en Java
  5. Almacenar nulo en Hashtable en Java
Diferencia entre hashtable y hashmap en Java

Este tutorial presenta las diferencias entre Hashtable y HashMap en Java y también enumera algunos códigos de ejemplo para comprender el tema.

Hashtable es una clase en el marco de colecciones de Java que se utiliza para almacenar datos en pares clave-valor. Es una clase heredada en Java y funciona con el concepto hash para almacenar elementos. En las últimas versiones de Java, no se recomienda Hashtable. Preferimos usar HashMap que es más avanzado que Hashtable. Consulte la siguiente tabla que resume las diferencias clave entre Hashtable y HashMap en Java.

Hashtable vs HashMap

Hashtable HashMap
Sincronizado No sincronizado
Nulo no permitido Permitir nula
Clase heredada No legado
Es lento Es rápido

En la tabla de comparación anterior, podemos ver claramente las principales diferencias entre Hashtable y HashMap. Ahora, veamos algunos ejemplos.

Como Hashtable está sincronizado internamente, esto hace que Hashtable sea un poco más lento que el HashMap.

Crear Hashtable en Java

En este ejemplo, estamos creando Hashtable. Es la forma más sencilla de crear Hashtable, y solo necesitamos importar Hashtable en nuestro código. Esta clase se encuentra en el paquete java.util. Vea el ejemplo a continuación.

import java.util.Hashtable;

public class SimpleTesting {
  public static void main(String[] args) {
    Hashtable<Integer, String> hashTable = new Hashtable<>();
    hashTable.put(1, "One");
    hashTable.put(2, "Two");
    hashTable.put(3, "Three");
    System.out.println(hashTable);
  }
}

Producción :

{3=Three, 2=Two, 1=One}

Crear HashMap en Java

En este ejemplo, estamos creando HashMap en Java. Es la forma más sencilla de crear HashMap, y solo necesitamos importar HashMap en nuestro código. Esta clase se encuentra en el paquete java.util. Vea el ejemplo a continuación.

import java.util.HashMap;

public class SimpleTesting {
  public static void main(String[] args) {
    HashMap<Integer, String> hashTable = new HashMap<>();
    hashTable.put(1, "One");
    hashTable.put(2, "Two");
    hashTable.put(3, "Three");
    System.out.println(hashTable);
  }
}

Producción :

{3=Three, 2=Two, 1=One}

Almacenar nulo en HashMap en Java

El HashMap permite almacenar nulos, lo que significa que podemos almacenar una clave nula y múltiples valores nulos en el HashMap. Esta clase es útil cuando tienes nulos en tus colecciones. Vea el ejemplo a continuación.

import java.util.HashMap;

public class SimpleTesting {
  public static void main(String[] args) {
    HashMap<Integer, String> hashTable = new HashMap<>();
    hashTable.put(1, "One");
    hashTable.put(2, "Two");
    hashTable.put(3, "Three");
    hashTable.put(null, "Four");
    hashTable.put(null, null);
    System.out.println(hashTable);
  }
}

Producción :

{null=null, 1=One, 2=Two, 3=Three}

Almacenar nulo en Hashtable en Java

La Hashtable no permite almacenar nulos, lo que significa que no podemos almacenar un nulo en la Hashtable. Esta clase no es útil cuando tiene nulos en sus colecciones. Vea el ejemplo a continuación.

Lanza una excepción NullPointerException si se almacena un valor nulo.

import java.util.Hashtable;

public class SimpleTesting {
  public static void main(String[] args) {
    Hashtable<Integer, String> hashTable = new Hashtable<>();
    hashTable.put(1, "One");
    hashTable.put(2, "Two");
    hashTable.put(3, "Three");
    hashTable.put(null, "Four");
    hashTable.put(null, null);
    System.out.println(hashTable);
  }
}

Producción :

Exception in thread "main" java.lang.NullPointerException

Artículo relacionado - Java Hashtable

Artículo relacionado - Java HashMap