收集后在Java 8流中对对象的调用方法

SS'

假设我有这段代码:

Map<Consumer, Item> map = myStream.parallel()
        .filter(Objects::nonNull)
        .collect(Collectors.toConcurrentMap(e->e,
                e->e, mergeFunction));

我想做的是在收集完成后在流的每个对象上调用一个方法。

例如,

item.setDate(item.getOneDate());

在完成的代码依次遍历各个项目之前,将它们放入地图中,最后像上面的代码一样调用一部分代码,设置一个“日期”。

while(iterator.hasNext()) {
   Item blah = iterator.next();
   ....
   // code for putting into map
   ...
   blah.setDate(blah.getOneDate());
}

不确定如何使用Java 8流。forEachpeek

mos

这将引起争议,但我会使用peek()

myStream.parallel()
        .filter(Objects::nonNull)
        .peek(item -> item.setDate(item.getOneDate()))

IMO,此用例使反对使用状态修改的许多参数无效peek(),因为它基本上是无副作用的(假定不再可以从流源访问元素)。它绝对符合不干扰的唯一严格要求

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章