HashSet est basé sur la table de hachage.
Si l'on regarde HashSet<E>
mise en œuvre, tout est géré en vertu de l' HashMap<E,Object>
.
<E>
est utilisé comme une clé de HashMap
.
Et nous savons qu' HashMap
n'est pas thread-safe. C'est pourquoi nous avons ConcurrentHashMap
en Java.
Sur cette base, je suis confus que pourquoi nous n'avons pas ConcurrentHashSet qui doit être basé sur l' ConcurrentHashMap
?
Est-il autre chose que je suis absent? J'ai besoin d'utiliser Set
dans un environnement multi-thread.
Aussi, Si je veux créer mon propre ConcurrentHashSet
puis-je obtenir seulement par le remplacement de l' HashMap
de ConcurrentHashMap
et en laissant le reste?