集合类不安全之HashSet并发修改异常
一,故障现象
java.util.ConcurrentModificationException并发修改异常
多线程并发操作ArrayList时,争抢修改,导致的异常
二,解决方案
①Collections.syncronizedSet(new HashSet<>()).
②new CopyOnWriteArraySet<>();它的底层还是CopyOnWriteArrayList.
三,延申:
① hashset底层数据结构是什么?
是hashmap,创建了一个初始值为16负载因子为0.75的hashmap
②hashset.add方法。只添加一个参数,但是hashmap是kv结构啊,为什么不丢两个参数。
hashset.add方法底层调用的是hashmap的put方法
但是v上放的是一个常量值