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 HashMapn'est pas sûr pour les threads. C'est pourquoi nous avons ConcurrentHashMapen 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 Setdans un environnement multi-thread.
De plus, si je veux créer le mien, ConcurrentHashSetpuis-je le réaliser en remplaçant simplement le HashMapto ConcurrentHashMapet en laissant le reste tel quel?
ConcurrentSkipListSetest construit ConcurrentSkipListMap, qui implémente ConcurrentNavigableMapet ConcurrentMap.