Java多线程中集合遍历并发修改异常解决办法

java.util.ConcurrentModificationException异常

使用并发集合替换掉原集合可以实现并发修改安全。

原集合 并发集合 注意
HashMap ConcurrentHashMap Hashtable虽然线程安全但不支持并发修改
LinkedHashMap ConcurrentSkipListMap 支持排序,且并发安全
LinkedHashSet ConcurrentSkipListSet 支持排序,且不允许有重复元素
Queue ConcurrentLinkedQueue 只能操作队列头
Deque ConcurrentLinkedDeque 队头队尾都可操作
ArrayList CopyOnWriteArrayList 支持并发安全
HashSet CopyOnWriteArraySet 支持并发安全

你可能感兴趣的:(Java)