跳转至
本文阅读量

1. Java 函数式编程

声明 含义 使用场景
Consumer<T> 接受单个输入参数并且不返回任何结果的操作
Supplier<T> 不接受任何参数,但返回一个 T 类型的值的函数 它是一个生产者,用于延迟计算或生成数据
Function<T, R> 接受一个 T 类型的参数,并返回一个 R 类型的结果 它是一个转换器,用于将一种类型的值转换为另一种类型的值
Predicate<T> 接受一个 T 类型的参数,并返回一个 boolean 类型的结果的函数 它是一个判断器,用于测试某个条件是否成立
UnaryOperator<T> 接受一个 T 类型的参数,并返回一个 T 类型的结果的函数 它是一个单目操作符,用于对单个值进行转换,且输入和输出类型相同。 它是 Function 的特例
BinaryOperator<T> 接受两个 T 类型的参数,并返回一个 T 类型的结果 它是一个双目操作符,用于对两个值进行组合,且输入和输出类型相同。 它是 BiFunction 的特例
BiConsumer<T, U> 接受两个输入参数,并且不返回任何结果的操作 类似于 Consumer,但接受两个参数
BiFunction<T, U, R> 接受两个输入参数,并返回一个结果的函数
DoubleConsumer
IntConsumer
LongConsumer
这些是 Consumer 的特例,分别接受 double, int, 和 long 作为输入,避免了装箱/拆箱的开销,提高了性能
DoubleFunction<R>
IntFunction<R>
LongFunction<R>
这些是 Function 的特例,分别接受 double, int, 和 long 作为输入
ToIntFunction<T>
ToLongFunction<T>
ToDoubleFunction<T>
将输入类型 T 转换为 int, long, 和 double 类型