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
HashMapHashTable
SynchronisationHashMap 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 NullHashMap autorise une clé NULL et plusieurs valeurs NULL.HashTable n’autorise aucune clé ou valeur nulle.
JDK/HéritageHashMap est une nouvelle classe introduite dans JDK 1.2.HashTable est une classe héritée.
RapiditéHashMap est rapide.HashTable est lent.
Rendre synchronisableNous 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 *