`

Stream - Reduce

    博客分类:
  • FP
 
阅读更多

原创转载请注明出处:http://agilestyle.iteye.com/blog/2425206

 

reduce sum

private static void reduceSumTest1() {
    Stream<Integer> stream = Arrays.stream(new Integer[]{1, 2, 3, 4, 5, 6, 7});
    Integer reduce = stream.reduce(0, (i, j) -> i + j);
    System.out.println(reduce);
}

private static void reduceSumTest2() {
    Stream<Integer> stream = Arrays.stream(new Integer[]{1, 2, 3, 4, 5, 6, 7});
    Integer reduce = stream.reduce(0, Integer::sum);
    System.out.println(reduce);
}

private static void reduceSumTest3() {
    Stream<Integer> stream = Arrays.stream(new Integer[]{1, 2, 3, 4, 5, 6, 7});
    stream.reduce(Integer::sum).ifPresent(System.out::println);
}

Console Output

28
28
28

Using reduce to sum the numbers in a stream


 

 

 

reduce max

private static void reduceMaxTest() {
    Stream<Integer> stream = Arrays.stream(new Integer[]{1, 2, 3, 4, 5, 6, 7});
    stream.reduce(Integer::max).ifPresent(System.out::println);
}

Console Output

7

A reduce operation—calculating the maximum


 

reduce min

private static void reduceMinTest() {
    Stream<Integer> stream = Arrays.stream(new Integer[]{1, 2, 3, 4, 5, 6, 7});
    stream.reduce(Integer::min).ifPresent(System.out::println);
}

 Console Output

1

 

reduce even number multiply

private static void reduceTest() {
    Stream<Integer> stream = Arrays.stream(new Integer[]{1, 2, 3, 4, 5, 6, 7});
    Integer result = stream.filter(i -> i % 2 == 0).reduce(1, (i, j) -> i * j);

    Optional.of(result).ifPresent(System.out::println);
}

 Console Output

48

 

Reference

Manning.Java.8.in.Action.Lambdas.Streams.and.functional-style.programmin

 

 

 

  • 大小: 175.2 KB
  • 大小: 162.3 KB
分享到:
评论

相关推荐

    前端开源库-stream-series

    2. **操作符**:提供了丰富的操作符,如map(映射)、filter(过滤)、reduce(累加)等,以便对数据进行转换和处理。 3. **订阅与事件**:允许开发者订阅流,当流中有新数据时,会触发相应的事件,方便实时更新...

    前端开源库-stream-kit

    1. **转换操作**:Stream-Kit提供了一系列的转换函数,如map、filter、reduce等,这些函数可以方便地对数据流进行操作,例如映射数据、筛选特定项或对数据进行累积计算。 2. **组合流**:可以将多个流合并成一个,...

    06.第六节-使用stream的Reduce求和.mp4

    Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以...

    Stream-It

    1. **数据流操作**:Stream-It 提供了一系列操作符,如 map、filter、reduce、merge 和 buffer,这些操作符允许开发者对数据流进行转换和处理,类似于函数式编程中的操作。 2. **并行处理**:为了提高性能,Stream-...

    Java 8系列之Stream中万能的reduce用法说明

    Java 8系列之Stream中万能的reduce用法说明 在 Java 8 中,Stream API 提供了一个强大的方法reduce,用于从 Stream 中生成一个值。这个值不是随意的,而是根据指定的计算模型。reduce 操作可以实现从 Stream 中生成...

    double-stream-iterator:一次扫描两个流的实用程序模块

    该模块的核心是它的双流迭代器对象,它实现了JavaScript的迭代协议,使得你可以使用`for...of`循环或其他支持迭代的函数(如`Array.from()`或`Array.prototype.reduce()`)轻松地遍历两个流。迭代器会按照一定的策略...

    akka-mapreduce:基于Scala和Akka的map-reduce框架

    akka-mapreduce是一个基于Scala和Akka的库,可使用Scala中的Akka actor运行所有“ map”和“ reduce”任务并行运行的map-reduce作业。 在我们的框架中,最初使用Akka Stream读取数据,我们要做的是提供一个 ,可...

    stream-api-example:流 API 示例

    3. **Reducing and Collecting**:`reduce()` 方法可以对流中的元素进行聚合,如求和、找最大值或最小值。而 `collect()` 方法常与 `Collectors` 工具类一起使用,将流转换为集合,如 List、Set 或 Map。 4. **...

    stream-playground-homework

    - **减少(Reduce):** 应用一个累积函数到所有元素上,通常用于求和、乘积等。 5. **并行流(Parallel Streams)** 并行流是利用多核处理器的并行计算能力,提高处理速度。通过调用`parallel()`方法将顺序流转换为...

    F14-EX24-words:fall14classes24-map-filter-reduce

    标题"F14-EX24-words:fall14classes24-map-filter-reduce"指的是一个与编程相关的学习资源,特别是针对"6.005 秋季 14 班 24"课程的一个练习。这个练习的核心概念是映射(Map)、过滤(Filter)和减少(Reduce),这是函数...

    Go-JavaStreamAPI的一个Go语言实现

    sum := Stream(numbers).Filter(func(n int) bool { return n%2 == 0 }).Map(func(n int) int { return n * n }).Reduce(0, func(a, b int) int { return a + b }) fmt.Println("Sum of even squares:", sum) ``` ...

    stream-api-examples:带有使用Stream API各种方法的示例的存储库

    Stream API是Java 8引入的一项重要特性,极大地改善了集合数据处理的方式,使得代码更加简洁、易读。在这个"stream-api-examples"存储库中,我们可以找到一系列使用Stream API的各种方法的实例,这对于学习和理解...

    Stream-API:用于Stream API学习的Git代码库

    - `reduce(BinaryOperator)`:对流中的元素进行累积操作,如求和、最大值、最小值等。 - `count()`:计算流中元素的数量。 - `anyMatch(Predicate)`、`allMatch(Predicate)`、`noneMatch(Predicate)`:检查流中...

    Java-Stream流详解.pptx.pptx

    - **终端操作(Terminal Operations)**:如`forEach()`, `collect()`, `count()`, `findFirst()`, `reduce()`等,它们会触发流的计算并返回结果,或对流进行其他形式的消费。 **4. Stream的终止操作** - **终止...

    JAVA8 stream中三个参数的reduce方法对List进行分组统计操作

    `reduce()`方法是Stream API中的一个重要组成部分,它用于将流中的元素组合起来,生成一个单一的结果。当我们需要对List进行分组统计时,`reduce()`方法的三个参数版本就显得特别有用。本文将深入探讨如何利用这三个...

    mojo-mojo编程示例之reduce.zip

    例如,你可以读取项目资源文件中的数据,使用Java 8的Stream API来reduce这些数据,然后将结果写入新的文件或输出到控制台。 以下是一个简单的Mojo示例,演示了如何实现reduce操作: ```java import org.apache....

    Java8 Stream学习

    - `reduce`:对流中的元素做累积操作。 - `collect`:收集流中的元素并转换成其他形式的数据结构。 - `count`:返回流中元素的数量。 - `min/max`:找出流中的最小/最大值。 - `anyMatch/allMatch/noneMatch`:...

    Java8特性Stream流的使用(学完就会,项目源码,附带个人总结)

    - `reduce(BinaryOperator&lt;T&gt; accumulator)`:对流的元素进行聚合操作,如求和、求最大值或最小值。 - `count()`:返回流中元素的数量。 - `anyMatch(Predicate p)`、`allMatch(Predicate p)`、`noneMatch...

    java8Stream方法简介-源码.rar

    在Java 8 Stream API中,我们可以实现一些复杂的操作,比如使用`filter()`筛选出满足条件的元素,`map()`将元素转换为另一种类型,然后使用`reduce()`进行聚合操作。此外,`groupingBy()`方法可以用于按指定字段进行...

    Stream、Lambda表达式练习.doc

    Stream可以通过filter、map、reduce等方法对集合进行处理。 在本练习中,我们使用Stream API对两个ArrayList集合进行处理。第一个队伍只有名字为3个字的成员姓名,我们使用filter方法对队伍进行过滤,然后使用limit...

Global site tag (gtag.js) - Google Analytics