Diferença entre hashtable e hashmap em Java
-
HashtablevsHashMap -
Crie
Hashtableem Java -
Crie
HashMapem Java -
Armazene nulo em
HashMapem Java -
Armazene nulo em
Hashtableem 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