我们知道,对于Collection而言,在对其iterator的过程中,是不能调用Collection的remove等方法的,这样会报java.util.ConcurrentModificationException异常,通常用iterator的remove方法来达到目的,示例程序如下:
但是今天在公司写的代码,忽然报出了java.util.ConcurrentModificationException异常,只是普通的遍历一个list,添加一个userid到set中,代码如下:
这个情况下就会报出ConcurrentModificationException异常,令人百思不得其解。
调试了很久,也写了一个示例程序,忽然发现,程序是在多线程环境下,这样,set是非线程安全的,因此,给其加上锁就行了,好简单,唉。