stream reduce用法demo
时间: 2023-10-10 08:15:10 浏览: 75
好的,下面是一个使用Stream的reduce方法的示例:
假设我们有一个整数列表,我们想计算所有元素的总和。我们可以使用reduce方法来实现:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream().reduce(0, (a, b) -> a + b);
System.out.println(sum); // 输出15
```
在上面的代码中,我们首先创建一个整数列表。然后,我们使用Stream方法将其转换为一个流。接下来,我们使用reduce方法来计算所有元素的总和。reduce方法接受两个参数:起始值和一个lambda表达式。lambda表达式定义了如何将两个元素相加。在本例中,我们将两个元素相加,直到所有元素都被处理完毕。最后,reduce方法返回的结果是所有元素的总和。
另外,我们还可以使用方法引用来简化代码。例如,我们可以使用Integer类的静态方法sum来代替lambda表达式:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream().reduce(0, Integer::sum);
System.out.println(sum); // 输出15
```
这个示例与上一个示例的功能相同,但使用了方法引用来代替lambda表达式。在本例中,我们使用Integer类的静态方法sum作为lambda表达式的替代。这使得代码更加简洁易读。
阅读全文