Diferenças entre HashMap e HashTable em Java
HashMap e Hashtable armazenam pares de chave / valor em uma tabela hash. Ao usar um Hashtable ou HashMap, especificamos um objeto que é usado como uma chave e o valor que você deseja vincular a essa chave. A chave é então hash e o código hash resultante é usado como o índice no qual o valor é armazenado na tabela.
Amostra de código Java.
// A sample Java program to demonstrate HashMap and HashTable
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main(String args[])
{
//----------hashtable -------------------------
Hashtable<Integer,String> ht=new Hashtable<Integer,String>();
ht.put(101," ajay");
ht.put(101,"Vijay");
ht.put(102,"Ravi");
ht.put(103,"Rahul");
System.out.println("-------------Hash table--------------");
for (Map.Entry m:ht.entrySet()) {
System.out.println(m.getKey()+" "+m.getValue());
}
//----------------hashmap--------------------------------
HashMap<Integer,String> hm=new HashMap<Integer,String>();
hm.put(100,"Amit");
hm.put(104,"Amit");
hm.put(101,"Vijay");
hm.put(102,"Rahul");
System.out.println("-----------Hash map-----------");
for (Map.Entry m:hm.entrySet()) {
System.out.println(m.getKey()+" "+m.getValue());
}
}
}
------------- Tabela de hash -------------- 103 Rahul 102 Ravi 101 Vijay ----------- Mapa de hash ----------- 100 Amit 101 Vijay 102 Rahul 104 Amit
Hashmap vs Hashtable
1. HashMap não está sincronizado. Não é seguro para threads e não pode ser compartilhado entre muitas threads sem o código de sincronização adequado, enquanto o Hashtable é sincronizado. É thread-safe e pode ser compartilhado com muitos threads.
2. O HashMap permite uma chave nula e vários valores nulos, enquanto o Hashtable não permite nenhuma chave ou valor nulo.
3. HashMap geralmente é preferível a HashTable se a sincronização de thread não for necessária
Por que HashTable não permite null e HashMap permite?
Para armazenar e recuperar objetos de uma HashTable com êxito, os objetos usados como chaves devem implementar o método hashCode e o método equals. Como null não é um objeto, ele não pode implementar esses métodos. HashMap é uma versão avançada e aprimorada da Hashtable. HashMap foi criado posteriormente.
Artigos relacionados:
Fonte:
https://docs.oracle.com/javase/8/docs/api/java/util/Hashtable.html
Este artigo foi compilado por Aditya Goel . Escreva comentários se encontrar algo incorreto ou se quiser compartilhar mais informações sobre o tópico discutido acima
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva