HashSet основан на HashMap.
Если мы посмотрим на реализацию HashSet<E>, все будет управляться в HashMap<E,Object>.
<E> используется как ключ HashMap.
И мы знаем, что HashMap не является потокобезопасным. Вот почему мы имеем ConcurrentHashMap в Java.
Исходя из этого, я смущен тем, что почему у нас нет ConcurrentHashSet, который должен основываться на ConcurrentHashMap?
Есть ли что-то еще, что мне не хватает? Мне нужно использовать Set в многопоточной среде.
Кроме того, если я хочу создать свой собственный ConcurrentHashSet, могу ли я его достичь, просто заменив HashMap на ConcurrentHashMap и оставив все как есть?