Quelle est la différence entre HashMap et Hashtable en Java ?
Bonjour à tous ! Je viens de commencer à étudier le Java Collections Framework et je me suis embrouillé entre deux classes similaires — HashMap et Hashtable. Elles implémentent toutes les deux l'interface Map et semblent faire la même chose : stocker des paires clé-valeur. Mais j'ai entendu dire qu'il existe des différences importantes entre elles, et que Hashtable est considéré comme obsolète.
J'ai écrit un petit code de test, mais je ne vois pas la différence :
```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"); // fonctionne
System.out.println("HashMap: " + hashMap);
// Hashtable
Map hashtable = new Hashtable<>();
hashtable.put("key1", "value1");
// hashtable.put(null, "nullValue"); // lève NullPointerException ?
System.out.println("Hashtable: " + hashtable);
}
}
```
Pourquoi Hashtable ne permet-elle pas d'utiliser