HashSet est basé sur HashMap.
Si nous regardons la HashSet<E>
mise en œuvre, tout est géré sous HashMap<E,Object>
.
<E>
est utilisé comme clé de HashMap
.
Et nous savons que ce HashMap
n'est pas sûr pour les threads. C'est pourquoi nous avons ConcurrentHashMap
en Java.
Sur cette base, je ne comprends pas pourquoi nous n'avons pas de ConcurrentHashSet qui devrait être basé sur le ConcurrentHashMap
?
Y a-t-il autre chose qui me manque? Je dois utiliser Set
dans un environnement multi-thread.
De plus, si je veux créer le mien, ConcurrentHashSet
puis-je le réaliser en remplaçant simplement le HashMap
to ConcurrentHashMap
et en laissant le reste tel quel?
ConcurrentSkipListSet
est construit ConcurrentSkipListMap
, qui implémente ConcurrentNavigableMap
et ConcurrentMap
.