📅  最后修改于: 2023-12-03 14:42:49.811000             🧑  作者: Mango
在 Java 中,LongStream 是一个支持对 long 值的处理的流。而 LongUnaryOperator 则是用于将一个 long 类型的值映射为另一个值的函数接口。在 LongStream 中可以使用 LongUnaryOperator 来对流中的元素进行映射操作。
LongUnaryOperator 是一个函数式接口,其中只包含一个名为 applyAsLong 的方法:
@FunctionalInterface
public interface LongUnaryOperator {
long applyAsLong(long operand);
}
该方法接收一个 long 参数 operand,并返回一个 long 类型的结果。应用 LongUnaryOperator 函数接收的参数后,可以将结果作为流的新元素加入到流中。
可以使用 LongStream.map 方法将 LongUnaryOperator 应用于流中的每个元素。map 方法的原型如下:
LongStream map(LongUnaryOperator mapper);
其中 mapper 为要应用到每个元素的 LongUnaryOperator 实例。
下面是一个示例代码,使用 LongUnaryOperator 对 LongStream 中的元素进行平方操作:
LongUnaryOperator square = (long x) -> x * x;
LongStream.of(1L, 2L, 3L, 4L, 5L)
.map(square)
.forEach(System.out::println);
该代码将输出:
1
4
9
16
25
在这个示例代码中,首先定义了一个名为 square 的 LongUnaryOperator,用于计算每个元素的平方值。然后使用 LongStream.of 创建一个 LongStream,其中包含了 1 到 5 的五个 long 类型的值。接着调用 LongStream.map 方法,并将 square 作为参数传入。该语句将应用 square 函数到 LongStream 中的每个元素上。最后使用 forEach 方法将结果打印出来。
LongStream.map 方法提供了一种简单的方法来使用 LongUnaryOperator 对 LongStream 中的元素进行映射操作。这使得我们可以快速而简单地对流中的数据进行转换,并生成新的流以供后续处理使用。