Diferencia entre hashtable y hashmap en Java
-
HashtablevsHashMap -
Crear
Hashtableen Java -
Crear
HashMapen Java -
Almacenar nulo en
HashMapen Java -
Almacenar nulo en
Hashtableen 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