¿Cuál es la diferencia entre HashMap y Hashtable en Java?
¡Hola, colegas! Empecé a estudiar Java Collections Framework y me topé con dos clases similares: HashMap y Hashtable. Ambas parecen implementar la interfaz Map y almacenan pares clave-valor. Pero noté que en el código moderno todos usan HashMap, mientras que Hashtable se considera obsoleto.
Escribí un ejemplo simple donde ambas clases se comportan igual:
```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"); // esto lanzará NullPointerException
System.out.println("Hashtable: " + hashtable.get("key1"));
}
}
```
Veo que HashMap permite claves null, mientras que Hashtable no. También escuché que