一、解决方式,采用如下方式即可
@SuppressWarnings("unchecked") List<UserInfosDto> userInfosDtoList = response.getData(); // logger.info("信息的返回结果:{}", userInfosDtoList.toString()); Iterator<UserInfosDto> iterator = userInfosDtoList.iterator(); while (iterator.hasNext()) { UserInfosDto userInfosDto = iterator.next(); String termId = userInfosDto.getTermId(); if (userInfosDto.getIsPay() != ConstantEnum.USER_HAS_PAY.VALUES()) { iterator.remove(); } } // logger.info("信息筛选后的返回结果:{}", userInfosDtoList.toString()); return userInfosDtoList; 补充:多线程非共享变量的情况下不会出现问题。二、分析原因
final void checkForComodification() { if (modCount != expectedModCount) throw new ConcurrentModificationException(); }迭代器中的modCount和expectedModCount值不一样则会抛出这个异常。 参考文章一 参考文章二