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