如何使用Reactor框架执行map reduce操作?

时间:2014-04-03 17:22:04

标签: java reactor

有人可以通过Reactor框架展示如何执行map / reduce操作的代码示例吗?

我们说我有Collection<Map>。我想:

  1. 将每个Map实例同时转换为类型为Foo的对象(每个实例完全独立于另一个实例 - 无需按顺序/迭代方式转换每个实例)。

  2. 当所有这些转换后,我想要一个方法onReduce(Collection<Foo> foos)被调用 - 该参数包含所有生成的Foo个实例。

1 个答案:

答案 0 :(得分:1)

在我看来,根本不需要reducecollectconsume适合您:

@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转换为Stringcollect他们到结果List<Integer>的{​​{1}}和process

<强>更新

注意不需要Listcollect(5)来自被定义Stream的{​​{1}}。 最近已经介绍了batchSize