Différence entre HashMap et HashTable

Bien que HashTable et HashMap sont basée sur le hachage et les deux implémentent l’interface Map, la principale différence est la suivante: HashMap n’est pas un thread-safe, alors que HashTable est un thread-safe. Cela signifie que vous ne pouvez pas utiliser HashMap dans une application Java multithread sans synchronisation externe. Une autre différence est que HashMap autorise une clé NULL et des valeurs NULL, mais HashTable n’autorise pas la valeur NULL dans la paire clé/valeur. En plus, la sécurité des threads de HashTable est obtenue à l’aide de la synchronisation interne, ce qui la rend plus lente que HashMap.
 
 

Table de comparaison
HashMap HashTable
Synchronisation HashMap n’est pas synchronisé. Il n’est pas un thread-safe et ne peut pas être partagé entre plusieurs threads sans code de synchronisation approprié. HashTable est synchronisé, est un thread-safe et peut être partagé avec de nombreux threads.
Valeur Null HashMap autorise une clé NULL et plusieurs valeurs NULL. HashTable n’autorise aucune clé ou valeur nulle.
JDK/Héritage HashMap est une nouvelle classe introduite dans JDK 1.2. HashTable est une classe héritée.
Rapidité HashMap est rapide. HashTable est lent.
Rendre synchronisable Nous pouvons rendre HashMap synchronisée en appelant ce code
Map map = Collections.synchronizedMap(hashmap);
HashTable est synchronisé en interne et ne peut pas être désynchronisé.
Différence entre HashSet et HashMap

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *