集合中的快速失败和安全失败
快速失败
当使用迭代器遍历集合的时候,如果在这个遍历的过程中,进行了修改,就会直接抛出ConcurrentModificationExecption
原理:在HashMap中,我们每次进行操作的时候,会维护一个modCount,当我们对HashMap进行了修改之类的操作,就会将这个值进行++,当我们迭代的时候,会判断这个值是否发生了改变,改变了就会抛出异常
安全失败
在JUC包下的这些容器都是安全失败,可以在多线程的情况下使用,并发修改
对集合结构的修改会在一个复制的集合上进行修改,因此不会抛出并发修改异常
缺点:开销大