前言
CopyOnWriteArraySet也是JUC下常用容器,其底层实现是基于CopyOnWriteArrayList的,关于CopyOnWriteArrayList的详情可以查看【从入门到放弃-Java】并发编程-JUC-CopyOnWriteArrayList,接下来我们看下源码。
CopyOnWriteArraySet
CopyOnWriteArraySet
1 | /** |
add
1 | /** |
addAll
1 | /** |
remove
1 | /** |
总结
通过源码分析,我们了解到,CopyOnWriteArraySet主要是依赖CopyOnWriteArrayList来实现各方法的。
因此与CopyOnWriteArrayList一样,更适用于读多写少的并发操作中。
详细原因在【从入门到放弃-Java】并发编程-JUC-CopyOnWriteArrayList中以及解释过了,这里不再赘述。
值得一提的是,常用的非并发容器HashSet,是基于HashMap实现的,利用HashMap中Entry的key做到唯一值,Entry的value是一个不可变静态对象Object。但是JUC中并发Set是却不是基于Map的,学习完这三章并发容器,你能回答这是为什么吗?可以在评论中留言,我们一起探讨下哦~