HashSet基于HashMap。
如果我们看HashSet<E>
实现,一切都在HashMap<E,Object>
下管理。
<E>
作为HashMap
的键。
而且我们知道HashMap
不是线程安全的。这就是为什么我们在Java中使用ConcurrentHashMap
。
基于此,我很困惑为什么我们没有一个ConcurrentHashSet应该基于ConcurrentHashMap
?
我还遗漏了什么吗?我需要在多线程环境中使用Set
。
此外,如果我想创建自己的ConcurrentHashSet
,我可以通过将HashMap
替换为ConcurrentHashMap
并保留其余部分来实现它吗?