问题描述
每个人都知道HashSet
根据哈希表的大小和元素的哈希码值将元素存储在存储桶中。
但是copyOnWriteArraySet
如何存储元素?我认为它可以为这些存储桶制作快照并复制它们。看起来好像没有。是否将它们一一存储在“普通”数组中并检查equals()
?
它甚至使用散列原理吗?
解决方法
CopyOnWriteArraySet
是CopyOnWriteArrayList
的Set
包装器,将其元素存储在数组中,因此不使用哈希。这就是为什么它没有HashSet的O(1)查找优势。
医生说它只适合小套。