Stream
文章平均质量分 84
jiang_anwei
这个作者很懒,什么都没留下…
展开
-
并行流的使用偶现ConcurrentModificationException 异常
问题描述今天排查线上偶现的问题,查日志是并发修改集合的异常:问题代码:Map<String, Object> context = ContextUtil.getAll();req.getLines().parallelStream().forEach(lineNo -> { ContextUtil.putAll(context); baseWave.occupyLine(warehouseCode, lineNo, req.getPlanDate());});原创 2021-01-14 14:58:11 · 1144 阅读 · 8 评论 -
对java8 StreamAPI的扩展
java8的流(Stream API)已经提供了很强大的api接口了,满足日常开发的绝大部分需要,但是还是有些欠缺比如 java9才增加的两个api takeWhile dropWhiletakeWhile() 方法使用一个断言作为参数,返回给定 Stream 的子集直到断言语句第一次返回 false。**dropWhile()**与takeWhile相反,使用一个断言作为参数,直到断言语句第一次返回 true 才返回给定 Stream 的子集。还有不爽的地方是同一个流只能执行一次流水线操作,完成后这原创 2020-07-09 15:33:34 · 551 阅读 · 0 评论 -
java8 Stream流水线实现分析
java8的Stream流水线,用起来很爽,但是他是怎么做到的呢。Stream流水线记录用户的每一步操作步骤(map,filter等),当用户调用结束操作(Collect,reduce 等)时将用户之前记录的操作一并执行调。这里就有几个问题要解决了如何记录用户操作如何将用户操作串联起来如何触发整个任务获取结果记录串联用户操作首先查看类图查看源码我们可以看到 list.stream().map(x->x+“123”).filter(x->x.startsWith(“test”)原创 2020-07-03 16:54:54 · 2139 阅读 · 0 评论