Ce n'est pas une question sur les différences entre Je comprends qu'un objet Hashtable
et HashMap
.Hashtable
ne peut pas accepter les valeurs null
pour les entrées de la clé ou de la valeur, qu'il s'agit de la collecte synchronisée et qu'elle utilise un peu moins de mémoire qu'un HashMap
.
Je me demande sur les scénarios où il serait plus approprié d'utiliser un Hashtable
au lieu d'un HashMap
.
Ce n'est pas une question sur les différences entre
Hashtable
etHashMap
Eh bien c'est vraiment ...
Je me demande sur les scénarios où il serait plus approprié d'utiliser un
Hashtable
au lieu d'unHashMap
.
Précisément lorsque vous voulez les différences entre les deux:
Collections.synchronizedMap
sur un HashMap
Hashtable
(relativement rare, heureusement)Je ne me souviens pas de la dernière fois que j'étais dans cette situation, personnellement, je dirais qu'il est trop rare d'être approprié d'utiliser Hashtable
dans modern Java Code.
Jamais. Hashtable était la mise en œuvre initiale d'une carte dans Java 1. Il a été dépassé par les implémentations de la carte. Bien sûr, Hashable a été installé pour correspondre mais ce n'est pas terriblement utile.
Il a le principal problème en ce que c'est synchronisé. Cela signifie qu'il sera lent dans toutes les circonstances où il est partagé entre les threads. ConcourshashMap est un meilleur choix dans cette situation. Si vous exécutez sur un seul thread, le hashmap non synchronisé est un meilleur choix.
Savoir quand utiliser une classe ou une structure sur une autre comprendre essentiellement les différences entre les deux et décider que l'on convient le mieux au problème en fonction de ces différences.
Je comprends qu'un objet Hashtable ne peut pas accepter les valeurs NULL
Donc, dans la situation où vous devez stocker des valeurs null, un Hashtable
ne serait pas approprié.
En outre, dans un Hashtable
, l'énumération n'est pas sûre. Donc, si vous devez être en mesure de modifier le contenu de la structure pendant l'énumération, un Hashtable
serait plus approprié.