java - Java为HashSet中的ConcurrentModificationException提供的类是什么?

标签 java multithreading collections synchronization

如果我们在 HashSet 的 oracle 文档中看到,它指出在迭代整个 Set 时,如果我们尝试操作它,它会抛出 ConcurrentModificationException。这是可以理解的。

这与 ArrayList 或 HashMap 的情况类似。但如果我们看到,Java 提供了替代类,例如 CopyOnWriteArrayList 和 ConcurrentHashMap。

为什么 HashSet 没有这样的类来处理 ConcurrentModificationException?或者即使它存在,也请引起我的注意。我不知道有这样的类(class)

最佳答案

如果您想要一个“ConcurrentHashSet”,其行为与 ConcurrentHashMap 相同,您可以使用 Collections.newSetFromMap()并传递一个 ConcurrentHashMap 作为参数。

还有其他并发Set实现:例如ConcurrentSkipListSetCopyOnWriteArraySet

关于java - Java为HashSet中的ConcurrentModificationException提供的类是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32394986/

相关文章:

java - 看不懂View View 参数

c# - 并行交易软件(续)

C中创建多线程

java - 为什么从 ByteBuffer 的绝对读取不被认为是线程安全的?

java - Spring和Ehache : Cachemanger

java - java中的TCP套接字编程和多线程

java - Neo4j 查询返回集合的集合

java - 自己的数据类型或 HashMap 的集合

java - Collection 扩展了 Iterable,但为什么 Collection 声明 Iterable Function(与 Iterable 相同)

java - 数据没有被插入到我的 SQL 表中,但它还说存在重复的主键