Sobes.tech
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");