Junior — Middle
Quais são as diferenças entre as coleções HashMap e Hashtable em termos de implementação e características?
sobes.tech IA
Resposta da IA
HashMap e Hashtable são implementações da interface Map em Java, mas têm algumas diferenças:
-
Sincronização: Hashtable está sincronizado (thread-safe), o que o torna mais lento em ambientes multithread. HashMap não está sincronizado, portanto é mais rápido, mas não seguro para acesso multithread sem sincronização externa.
-
Permite null: HashMap permite uma chave null e múltiplos valores null. Hashtable não permite chaves null nem valores null.
-
Herança: Hashtable é uma classe mais antiga, herda de Dictionary, enquanto HashMap herda de AbstractMap.
-
Uso: Em aplicações modernas, é preferível usar HashMap, e para sincronização, usar ConcurrentHashMap ou sincronizar externamente HashMap.
Exemplo de uso de HashMap:
Map<String, Integer> map = new HashMap<>();
map.put("key", 1);
Integer value = map.get("key");