java.util.ConcurrentModificationException报错求解决办法

遍历map集合,往里面添加数据报错,知道是modCount != expectedModCount的原因但是不知道怎么改

img


求解决代码


foreach底层使用的是迭代器的遍历方式,不能一边遍历,一边对数据进行增删

你只截取了一部分代码,不知道你对数据源做了什么,但是总之不能使用foreach边遍历,边增删,如果需要,有以下方案:

  1. 建一个临时数组/Map,将符合条件的需要保留的放进临时数组,在遍历完成后,用临时数据替换数据源
  2. 对于 List,可以使用 while / fori 循环,每轮判断 i < 数据源.size 取第 i 个
  3. 对于 Map,建议使用第一种方案