有人可以通过Reactor框架展示如何执行map / reduce操作的代码示例吗?
我们说我有Collection<Map>
。我想:
将每个Map
实例同时转换为类型为Foo
的对象(每个实例完全独立于另一个实例 - 无需按顺序/迭代方式转换每个实例)。
当所有这些转换后,我想要一个方法onReduce(Collection<Foo> foos)
被调用 - 该参数包含所有生成的Foo
个实例。
答案 0 :(得分:1)
在我看来,根本不需要reduce
。 collect
和consume
适合您:
@Test
public void testCollect() {
Stream<String> stream = Streams.defer(Arrays.asList("1", "2", "3", "4", "5")).get();
stream.map(Integer::parseInt)
.collect()
.consume(integers -> assertThat(integers, Matchers.contains(1, 2, 3, 4, 5)));
}
此示例(Java 8)演示了如何将List<String>
发送到Reactor Stream
,将每个item
转换为String
,collect
他们到结果List<Integer>
的{{1}}和process
。
<强>更新强>
注意不需要List
:collect(5)
来自被定义Stream
的{{1}}。
最近已经介绍了batchSize
。