在对一个集合实时遍历处理,修改或删除,会触发ConcurrentModificationException异常
单线程情况:
(1)使用Iterator提供的remove方法,用于删除当前元素。
(2)建立一个集合,记录需要删除的元素,之后统一删除。
(3)不使用Iterator进行遍历,需要之一的是自己保证索引正常。
(4)使用并发集合类来避免ConcurrentModificationException,比如使用CopyOnArrayList,而不是ArrayList。
多线程情况:
(1)使用并发集合类,如使用ConcurrentHashMap或者CopyOnWriteArrayList。