Java8函数式编程入门 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

reduce

reduce操作可以从一组值中生成一个值。

例子:如何通过reduce操作对Stream中的数字求和,以0作为起点,一个空Stream的求和结果,每一步都将Stream中的元素累加至sum,遍历Stream中的所有元素,sum的值就是所有元素的和。

使用for循环实现:

private void print() {
    System.out.println("使用for循环:");
    List<Integer> nums = Arrays.asList(5,10,15,20);
    int sum = 0;
    for (Integer num : nums) {
        sum += num;
    }
    System.out.println(sum);
}

使用reduce实现:

private void test() {
    System.out.println("使用reduce实现:");
    int result = Stream.of(5,10,15,20)
            .reduce(0,(sum,x) -> sum + x);
    System.out.println(result);
}

输出结果:

query

使用reduce函数式编程方式,求一个数字列表{2,4,8,12}的乘积。