HashSet заснований на HashMap.
Якщо ми подивимось на HashSet<E>реалізацію, все керовано в рамках HashMap<E,Object>.
<E>використовується як ключ від HashMap.
І ми знаємо, що HashMapце не безпечно для ниток. Ось чому ми маємо ConcurrentHashMapна Java.
Виходячи з цього, я плутаю, що чому ми не маємо ConcurrentHashSet, який повинен базуватися на ConcurrentHashMap?
Чи є ще щось, чого я пропускаю? Мені потрібно використовувати Setв багатопотоковому середовищі.
Крім того , якщо я хочу , щоб створити свій власний ConcurrentHashSetя можу домогтися цього, просто замінивши HashMapна ConcurrentHashMapі залишити решту як є?
ConcurrentSkipListSet, побудовано на тому ConcurrentSkipListMap, що реалізує ConcurrentNavigableMapта ConcurrentMap.