Avatar ·

Qual é a diferença entre HashMap e Hashtable em Java?

Olá, colegas! Comecei a estudar o Java Collections Framework e me deparei com duas classes semelhantes: HashMap e Hashtable. Ambas aparentemente implementam a interface Map e armazenam pares chave-valor. Mas notei que no código moderno todos usam HashMap, enquanto Hashtable é considerada obsoleta. Escrevi um exemplo simples onde ambas as classes se comportam da mesma forma: ```java import java.util.*; public class MapTest { public static void main(String[] args) { Map hashMap = new HashMap<>(); hashMap.put("key1", "value1"); hashMap.put(null, "nullValue"); System.out.println("HashMap: " + hashMap.get("key1")); Hashtable hashtable = new Hashtable<>(); hashtable.put("key1", "value1"); // hashtable.put(null, "nullValue"); // isso causará NullPointerException System.out.println("Hashtable: " + hashtable.get("key1")); } } ``` Vejo que HashMap permite chaves null, enquanto Hashtable não. Também ouvi que