为什么不要在 foreach 循环里进行元素的 removeadd 操作。remove 元素请使用Iterator 方式如果并发操作需要对 Iterator 对象加锁。
在 foreach 循环中进行元素的 remove/add 操作会导致 ConcurrentModificationException 异常,这是因为 foreach 循环使用的是迭代器,而在进行元素的 remove/add 操作时,会改变集合的结构,导致迭代器的状态和集合的状态不一致,从而抛出异常。使用 Iterator 进行 remove 操作可以避免这个问题,因为 Iterator 提供了 remove 方法,它可以正确地删除元素并更新迭代器的状态。如果在并发环境中进行 Iterator 操作,需要对 Iterator 对象加锁以保证线程安全。
原文地址: https://www.cveoy.top/t/topic/chof 著作权归作者所有。请勿转载和采集!