O HashSet é baseado no HashMap.
Se observarmos a HashSet<E>implementação, tudo será gerenciado HashMap<E,Object>.
<E>é usado como uma chave de HashMap.
E sabemos que isso HashMapnão é seguro para threads. É por isso que temos ConcurrentHashMapem Java.
Com base nisso, estou confuso de que por que não temos um ConcurrentHashSet que deve ser baseado no ConcurrentHashMap?
Falta mais alguma coisa? Eu preciso usar Setem um ambiente multiencadeado.
Além disso, se eu quiser criar o meu próprio, ConcurrentHashSetposso consegui-lo apenas substituindo o HashMappara ConcurrentHashMape deixando o resto como está?
ConcurrentSkipListSeté construído ConcurrentSkipListMap, o que implementa ConcurrentNavigableMape ConcurrentMap.