Diferença entre hashtable e hashmap em Java
-
Hashtable
vsHashMap
-
Crie
Hashtable
em Java -
Crie
HashMap
em Java -
Armazene nulo em
HashMap
em Java -
Armazene nulo em
Hashtable
em Java
Este tutorial apresenta as diferenças entre Hashtable
e HashMap
em Java e também lista alguns códigos de exemplo para entender o tópico.
Hashtable é uma classe na estrutura de coleções Java que é usada para armazenar dados em pares chave-valor. É uma classe legada em Java e trabalha com o conceito de hash para armazenar elementos. Nas versões mais recentes do Java, o Hashtable não é recomendado. Devemos preferir usar HashMap que seja mais avançado do que Hashtable. Consulte a tabela abaixo que resume as principais diferenças entre Hashtable e HashMap em Java.
Hashtable
vs HashMap
Hashtable |
HashMap |
---|---|
Sincronizado | Não sincronizado |
Nulo não permitido | Permitir nulo |
Aula legada | Não é legado |
Está lento | Isso é rápido |
Na tabela de comparação acima, podemos ver claramente as principais diferenças entre Hashtable e HashMap. Agora, vamos ver alguns exemplos.
Como Hashtable
é sincronizado internamente, isso torna Hashtable
um pouco mais lento do que HashMap
.
Crie Hashtable
em Java
Neste exemplo, estamos criando Hashtable. É a maneira mais simples de criar Hashtable, e só precisamos importar Hashtable em nosso código. Esta classe está localizada no pacote java.util
. Veja o exemplo abaixo.
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);
}
}
Resultado:
{3=Three, 2=Two, 1=One}
Crie HashMap
em Java
Neste exemplo, estamos criando HashMap
em Java. É a maneira mais simples de criar HashMap, e só precisamos importar o HashMap em nosso código. Esta classe está localizada no pacote java.util
. Veja o exemplo abaixo.
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);
}
}
Resultado:
{3=Three, 2=Two, 1=One}
Armazene nulo em HashMap
em Java
O HashMap
permite que nulos sejam armazenados, o que significa que podemos armazenar uma chave nula e vários valores nulos no HashMap
. Esta classe é útil quando você tem null em suas coleções. Veja o exemplo abaixo.
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);
}
}
Resultado:
{null=null, 1=One, 2=Two, 3=Three}
Armazene nulo em Hashtable
em Java
A Hashtable
não permite o armazenamento de nulos, o que significa que não podemos armazenar um nulo na Hashtable
. Esta classe não é útil quando você tem null em suas coleções. Veja o exemplo abaixo.
Ele lança uma exceção NullPointerException
se um valor nulo for armazenado.
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);
}
}
Resultado:
Exception in thread "main" java.lang.NullPointerException