HashSetはHashMapに基づいています。
HashSet<E>
実装を見ると、すべてがで管理されていHashMap<E,Object>
ます。
<E>
のキーとして使用されますHashMap
。
そして、それHashMap
はスレッドセーフではないことを知っています。そのためConcurrentHashMap
、Java を使用しています。
これに基づいて、なぜ私たちは?に基づくべきConcurrentHashSetを持っていないのか混乱していConcurrentHashMap
ます。
他に欠けているものはありますか?Set
マルチスレッド環境で使用する必要があります。
また、自分で作成したい場合はConcurrentHashSet
、HashMap
to ConcurrentHashMap
を置き換えて残りをそのままにすることでそれを実現できますか?
ConcurrentSkipListSet
上に構築されConcurrentSkipListMap
、その実装ConcurrentNavigableMap
とConcurrentMap
。