Java 8 BiFunction示例
时间: 2024-03-20 08:44:29 浏览: 67
BiFunction 是 Java 8 中的一个函数式接口,它接收两个参数并返回一个结果。下面是一个 BiFunction 的示例:
```
BiFunction<Integer, Integer, Integer> add = (a, b) -> a + b;
int result = add.apply(1, 2);
System.out.println(result); // 输出 3
```
在这个示例中,我们定义了一个 BiFunction 对象 add,它接收两个 Integer 类型的参数并返回它们的和。我们使用 apply 方法来使用这个 BiFunction 对象,将 1 和 2 作为参数传递给它,并将结果存储在 result 变量中。最后,我们打印出这个结果。
注意,BiFunction 是一个泛型接口,我们需要指定它的三个类型参数:第一个参数类型、第二个参数类型和返回值类型。在上面的示例中,我们将它们都设置为 Integer 类型。
相关问题
JAVA8reduce
在Java 8中,reduce是一个非常有用的函数,它可以将一个流中的元素进行归约操作,最终返回一个值。它的使用方式是将一个初始值和一个BinaryOperator函数传递给流的reduce方法。
下面是reduce函数的基本语法:
```
Optional<T> reduce(BinaryOperator<T> accumulator)
T reduce(T identity, BinaryOperator<T> accumulator)
U reduce(U identity, BiFunction<U, ? super T, U> accumulator, BinaryOperator<U> combiner)
```
第一个语法形式中,只传递了一个BinaryOperator函数。它用于将流中的元素进行归约,并返回一个Optional对象。
第二个语法形式中,除了BinaryOperator函数外,还传递了一个初始值identity。这个初始值会作为归约操作的起点。
第三个语法形式中,除了BinaryOperator函数和初始值外,还传递了一个combiner函数。这个函数用于处理并行流的归约操作。
下面是一个简单示例,演示如何使用reduce计算数组中所有元素的和:
```java
int[] numbers = {1, 2, 3, 4, 5};
int sum = Arrays.stream(numbers).reduce(0, (a, b) -> a + b);
System.out.println("Sum: " + sum);
```
输出结果为:Sum: 15
在这个例子中,我们将初始值0和一个BinaryOperator函数 (a, b) -> a + b 传递给了reduce方法。这个函数用于对流中的元素进行求和操作。
希望这个示例能够帮助你理解Java 8中reduce函数的用法。如果有任何进一步的问题,请随时提问!
阅读全文