KwaiSZ
KwaiSZ
采纳率0%
2017-07-14 06:00 阅读 1.2k

在foreach里面递归,在递归里面使用了ArrayList.listIterator();

在里面调用了此迭代器的remove方法,
刚开始插数据进行处理没问题,后面又插了两条数据,就有问题了
java.util.ConcurrentModificationException
逻辑就是这样,如果说之前插数据索引保持了了一致性,那么后面再插数据怎么就不行了呢? 求大神

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • qq_34309305 75闪光雷 2017-07-14 06:45

    foreach最好循环一个固定数组或list,要是数组长度或者list改变,一般都会报错的。

    点赞 评论 复制链接分享
  • KwaiSZ KwaiSZ 2017-07-14 08:42

    我现在没有改变它的size了,不管是调用同步的remove()方法,还是将要删除的元素放入另一个list中,然后removeall(list)都不行啊!

    点赞 评论 复制链接分享
  • wang873985264 三木来啦 2017-07-14 08:45

    list不能再循环里面remove的,list的下表是会变的,remove掉一个元素后,后面所有的元素会前进一位

    点赞 评论 复制链接分享

相关推荐