Avatar ·

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

Olá a todos! Acabei de começar a estudar o Java Collections Framework e fiquei confuso com duas classes semelhantes — HashMap e Hashtable. Ambas implementam a interface Map e, aparentemente, fazem a mesma coisa: armazenam pares key-value. Mas ouvi dizer que existem diferenças importantes entre elas, e que Hashtable é considerada obsoleta. Escrevi um pequeno código de teste, mas não vejo diferença: ```java import java.util.*; public class TestMap { public static void main(String[] args) { // HashMap Map hashMap = new HashMap<>(); hashMap.put("key1", "value1"); hashMap.put(null, "nullValue"); // funciona System.out.println("HashMap: " + hashMap); // Hashtable Map hashtable = new Hashtable<>(); hashtable.put("key1", "value1"); // hashtable.put(null, "nullValue"); // lança NullPointerException? System.out.println("Hashtable: " + hashtable); } } ``` Por que Hashtable não permite usar