HashSet jest oparty na HashMap.
Jeśli spojrzymy na HashSet<E>implementację, wszystko jest zarządzane w ramach HashMap<E,Object>.
<E>jest używany jako klucz HashMap.
I wiemy, że HashMapnie jest to bezpieczne dla wątków. Właśnie dlatego mamy ConcurrentHashMapJavę.
Na tej podstawie jestem zdezorientowany, dlaczego nie mamy ConcurrentHashSet, który powinien być oparty na ConcurrentHashMap?
Czy coś jeszcze mi brakuje? Muszę używać Setw środowisku wielowątkowym.
Ponadto, jeśli chcę stworzyć własny, ConcurrentHashSetczy mogę to osiągnąć, po prostu zastępując HashMapgo ConcurrentHashMapi pozostawiając resztę bez zmian?
ConcurrentSkipListSetjest oparte na ConcurrentSkipListMapimplementacji ConcurrentNavigableMapi ConcurrentMap.