Java8 map,reduce,flatMap与Java异步执行中的问题

首先说一下我伪代码的结构:

Map<Integer,List<A>>  val;

//function方法在另一个类中,并且用@Async注解标识,表示异步执行
function(Map<Integer,List<A>>  val);//call 1
function(Map<Integer,List<A>>  val);//call 2
function(Map<Integer,List<A>>  val);//call 3

然后我想取val的value出来,组成一个List<List<A>>,然后拆分为List<A>,那么,
理所当然的使用flatMap是最好的方法:
 List<A> data =val.entrySet().stream().map(e -> 
 e.getValue()).flatMap(List::stream).collect(Collectors.toList());

但是这时候报错:
java.util.ConcurrentModificationException
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1380)
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
    at com.web3.buyer.roomba.RoombaTurn.lambda$received$3(RoombaTurn.java:296)
    at java.util.Iterator.forEachRemaining(Iterator.java:116)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值