Java8 Functional Interfaces

java8 提供的函数式接口:

Consumer<T>: 接受一个输入参数,无返回值。
BiConsumer<T,U>: 接受两个输入参数,无返回值
DoubleConsumer: 接受一个double类型的输入参数,无返回值
IntConsumer: 接受一个int类型的输入参数,无返回值
LongConsumer:接受一个long类型的输入参数,无返回值
ObjDoubleConsumer<T>:接受一个object类型和一个double类型的输入参数,无返回值
ObjIntConsumer<T>:接受一个object类型和一个int类型的输入参数,无返回值
ObjLongConsumer<T>:接受一个object类型和一个long类型的输入参数,无返回值

Function<T,R>: 接受一个输入参数,返回一个结果。
BiFunction<T,U,R>:接受两个输入参数,返回一个结果。
DoubleFunction<R>:接受一个double类型输入参数,返回一个结果
IntFunction<R>:接受一个int类型输入参数,返回一个结果
LongFunction<R>:接受一个long类型输入参数,返回一个结果
DoubleToIntFunction:接受一个double类型输入,返回一个int类型结果
DoubleToLongFunction:接受一个double类型输入,返回一个long类型结果
IntToDoubleFunction:接受一个int类型输入,返回一个double类型结果
IntToLongFunction:接受一个int类型输入,返回一个long类型结果
LongToDoubleFunction:接受一个long类型输入,返回一个double类型结果
LongToIntFunction:接受一个long类型输入,返回一个int类型结果
ToDoubleBiFunction<T,U>: 接受两个输入参数,返回一个double类型结果
ToDoubleFunction<T>:接受一个输入参数,返回一个double类型结果
ToIntBiFunction<T,U>:接受两个输入参数,返回一个int类型结果
ToIntFunction<T>:接受一个输入参数,返回一个int类型结果
ToLongBiFunction<T,U>:接受两个输入参数,返回一个long类型结果
ToLongFunction<T>:接受一个输入参数,返回一个long类型结果

Predicate<T>: 接受一个输入参数,返回一个boolean结果
BiPredicate<T,U>:接受两个输入参数,返回一个boolean结果
DoublePredicate:接受一个double输入参数,返回一个boolean结果
IntPredicate:接受一个int输入参数,返回一个boolean结果
LongPredicate: 接受一个long输入参数,返回一个boolean结果

Supplier<T>: 无参数,返回一个结果
BooleanSupplier:无参数,返回一个boolean
DoubleSupplier:无参数,返回一个double
IntSupplier:无参数,返回一个结果int
LongSupplier:无参数,返回一个结果long

(Operator继承自funtion,是特殊类型的Function)
UnaryOperator<T>:接受一个参数为类型T,返回值类型也为T
BinaryOperator<T>:接受两个参数同为类型T,返回值类型也为T
DoubleUnaryOperator:接受一个参数同为类型double,返回值类型也为double
DoubleBinaryOperator:接受两个参数同为类型double,返回值类型也为double
IntUnaryOperator:接受一个参数同为类型int,返回值类型也为int
IntBinaryOperator:接受两个参数同为类型int,返回值类型也为int
LongUnaryOperator:接受一个参数同为类型long,返回值类型也为long
LongBinaryOperator:接受两个参数同为类型long,返回值类型也为long

除以上JDK自带的接口,也可以自定义任意函数式接口。Lamda 多配合stream和collection使用。

你可能感兴趣的:(java)