public FlowReduce<B> reduce(B def, Reducer<B> reducer) { return then(new FlowReduce<B>(def, reducer)); }
@Test public void test_reduce() { Assert.assertEquals(Integer.valueOf(3), Flow.of(1, 2, 3).reduce(new Reducer<Integer>() { @Override public Integer reduce(Integer a, Integer b) { return a > b ? a : b; } }).get()); Assert.assertEquals(Integer.valueOf(3), Flow.of(3, 2, 1).reduce(new Reducer<Integer>() { @Override public Integer reduce(Integer a, Integer b) { return a > b ? a : b; } }).get()); }
@Test public void test_reduce2() { Assert.assertEquals(Integer.valueOf(6), Flow.of(1, 2, 3).reduce(new Reducer<Integer>() { @Override public Integer reduce(Integer a, Integer b) { return a > b ? a : b; } }).map(new Mapper<Integer, Integer>() { @Override public Integer map(Integer integer) { return integer * 2; } }).first().get()); Assert.assertEquals(Integer.valueOf(6), Flow.of(3, 2, 1).reduce(new Reducer<Integer>() { @Override public Integer reduce(Integer a, Integer b) { return a > b ? a : b; } }).map(new Mapper<Integer, Integer>() { @Override public Integer map(Integer integer) { return integer * 2; } }).first().get()); }
public FlowReduce<B> reduce(B def, Reducer<B> reducer) { return then(new FlowReduce<B>(def, reducer)); }