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