Java中集合边迭代(遍历)边删除注意事项
//边迭代边删除需可以用集合的迭代器,不能用foreach循环加上集合本身的remove方法//因为foreach本身也是实现的迭代器//新建迭代器时会自动新开一个迭代器专用线程且将原线程中集合的对象拷贝过去//迭代器每次迭代都会检查自己的线程中的元素数量与原线程中的元素数量是否相等(基于CAS机制)//若不相等则抛出异常,若在foreach调用集合本身的remove方法而不是迭代器的remove//则仅会删除原线程的相应元素,而迭代器这边的线程是侦查不到的,也就造成了两线程中//元素个数不一.
原创
2022-01-22 15:05:00 ·
671 阅读 ·
0 评论