Diferencia entre hashtable y hashmap en Java
-
Hashtable
vsHashMap
-
Crear
Hashtable
en Java -
Crear
HashMap
en Java -
Almacenar nulo en
HashMap
en Java -
Almacenar nulo en
Hashtable
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