CopyOnWriteArraySet基于CopyOnWriteArrayList

来源:5-8 并发容器及安全共享策略总结

慕慕1561859

2020-08-01

CopyOnWriteArraySet不是基于CopyOnWriteArrayList吗,为什么CopyOnWriteArrayList迭代器支持可变remove,CopyOnWriteArraySet迭代器不支持

写回答

1回答

Jimin

2020-08-03

你好,CopyOnWriteArraySet内部是采用CopyOnWriteArrayList实现的所有操作,所以除了CopyOnWriteArraySet拥有Set集合的特性即不允许重复元素以及不能通过下标获取插入元素之外,所有的特性都与CopyOnWriteArrayList一样,即CopyOnWriteArraySet也是采用直接拷贝原数组产生新数组的方式实现的线程安全的无界队列,它的迭代器特性与CopyOnWriteArrayList一样,在创建完迭代器实例只后对CopyOnWriteArraySet队列本身的更新不会反映到迭代器,迭代器相关的remove等更新方法也是无意义的,所以将直接抛出UnsupportedOperationException。

0
0

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程