HashSet基于HashMap。
如果我们看一下HashSet<E>
实现,则所有内容都在下管理HashMap<E,Object>
。
<E>
用作的键HashMap
。
而且我们知道这HashMap
不是线程安全的。这就是为什么我们使用ConcurrentHashMap
Java。
基于此,我感到困惑的是,为什么我们没有应该基于的ConcurrentHashSet ConcurrentHashMap
?
还有什么我想念的吗?我需要Set
在多线程环境中使用。
另外,如果我想创建自己的作品,是否ConcurrentHashSet
可以通过仅替换HashMap
to ConcurrentHashMap
并将其余内容保持不变来实现?
ConcurrentSkipListSet
是基于ConcurrentSkipListMap
,实现ConcurrentNavigableMap
和的ConcurrentMap
。