bigdata

4. 使用收集器实现求平均数

2018-12-20  本文已影响0人  百炼

date[2018-12-20]

使用收集器收集

1.函数式编程相对于指令式编程的一个主要优势:你只需指出希望的结果——“做什么”,而不用操心执行的步骤——“如何做”。
2.收集器非常有用,因为用它可以简洁而灵活地定义 collect 用来生成结果集合的标准。更具体地说,对流调用collect方法将对流中的元素触发一个归约操作(由 Collector 来参数化)。

使用Collectors.averagingInt求平均值,使用summarizingInt 工厂方法返回的收集器。例如,通过一次 summarizing 操作你可以就数出菜单中元素的个数,并得到菜肴热量总和、平均值、最大值和最小值。

    @Test
    public void testAveragingInt() {
        Stream<Integer> integerStream = IntStream.iterate(0, n -> n + 2).limit(10).boxed();
        Double average = integerStream.collect(Collectors.averagingInt(value -> value));
        System.out.println("average:" + average);
    }
  @Test
    public void testIntSummaryStaticstics() {
        Stream<Integer> integerStream = IntStream.iterate(0, n -> n + 2).limit(10).boxed();
        IntSummaryStatistics collect = integerStream.collect(Collectors.summarizingInt(v -> v));
        System.out.println(collect.toString());
        System.out.println("min:" + collect.getMin());
        System.out.println("max:" + collect.getMax());
        System.out.println("sum:" + collect.getSum());
        System.out.println("average:" + collect.getAverage());
        Assert.assertEquals(collect, "");
    }

Collectors中定义的方法

Collectors收集器方法1.png
Collectors收集器方法2.png
Collectors收集器方法3.png
上一篇下一篇

猜你喜欢

热点阅读