Java 函数式接口其中有一个单一的功能,以显示出这些接口。
接口函数名 | 说明 |
---|---|
BiConsumer<T,U> | 表示接收两个输入参数和不返回结果的操作。 |
BiFunction<T,U,R> | 表示接受两个参数,并产生一个结果的函数。 |
BinaryOperator | 表示在相同类型的两个操作数的操作,生产相同类型的操作数的结果。 |
BiPredicate<T,U> | 代表两个参数谓词(布尔值函数)。 |
BooleanSupplier | 代表布尔值结果的提供者。 |
Consumer | 表示接受一个输入参数和不返回结果的操作。 |
DoubleBinaryOperator | 代表在两个double值操作数的运算,并产生一个double值结果。 |
DoubleConsumer | 表示接受一个double值参数,不返回结果的操作。 |
DoubleFunction | 表示接受double值参数,并产生一个结果的函数。 |
DoublePredicate | 代表一个double值参数谓词(布尔值函数)。 |
DoubleSupplier | 表示表示接受double值参数,并产生一个结果的函数。值结果的提供者。 |
DoubleToIntFunction | 表示接受一个double值参数,不返回结果的操作。 |
DoubleFunction | 表示接受double值参数,并产生一个结果的函数。 |
DoublePredicate | 代表一个double值参数谓词(布尔值函数)。 |
DoubleSupplier | DoubleToIntFunction |
DoubleToIntFunction | 表示接受double值参数,并产生一个int值结果的函数。 |
DoubleToLongFunction | 表示上产生一个double值结果的单个double值操作数的操作。 |
Function<T,R> | 代表接受一个double值参数,并产生一个long值结果的函数。 |
DoubleUnaryOperator | 表示上产生一个double值结果的单个double值操作数的操作。 |
Function<T,R> | 表示接受一个参数,并产生一个结果的函数。 |
IntConsumer | 表示接受单个int值的参数并没有返回结果的操作。 |
IntFunction | 表示接受一个int值参数,并产生一个结果的函数。 |
IntPredicate | 表示一个整数值参数谓词(布尔值函数)。 |
IntSupplier | 代表整型值的结果的提供者。 |
IntToLongFunction | 表示接受一个int值参数,并产生一个long值结果的函数。 |
IntUnaryOperator | 表示产生一个int值结果的单个int值操作数的运算。 |
LongBinaryOperator | 表示在两个long值操作数的操作,并产生一个ObjLongConsumer值结果。 |
LongFunction | 表示接受long值参数,并产生一个结果的函数。 |
LongPredicate | 代表一个long值参数谓词(布尔值函数)。 |
LongSupplier | 表示long值结果的提供者。 |
LongToDoubleFunction | 表示接受double参数,并产生一个double值结果的函数。 |
LongToIntFunction | 表示接受long值参数,并产生一个int值结果的函数。 |
LongUnaryOperator | 表示上产生一个long值结果单一的long值操作数的操作。 |
ObjDoubleConsumer | 表示接受对象值和double值参数,并且没有返回结果的操作。 |
ObjIntConsumer | 表示接受对象值和整型值参数,并返回没有结果的操作。 |
ObjLongConsumer | 表示接受对象值和整型值参数,并返回没有结果的操作。 |
ObjLongConsumer | 表示接受对象值和double值参数,并且没有返回结果的操作。 |
ObjIntConsumer | 表示接受对象值和整型值参数,并返回没有结果的操作。 |
ObjLongConsumer | 表示接受对象的值和long值的说法,并没有返回结果的操作。 |
Predicate | 代表一个参数谓词(布尔值函数)。 |
Supplier | 表示一个提供者的结果。 |
ToDoubleBiFunction<T,U> | 表示接受两个参数,并产生一个double值结果的功能。 |
ToDoubleFunction | 代表一个产生一个double值结果的功能。 |
ToIntBiFunction<T,U> | 表示接受两个参数,并产生一个int值结果的函数。 |
ToIntFunction | 代表产生一个int值结果的功能。 |
ToLongBiFunction<T,U> | 表示接受两个参数,并产生long值结果的功能。 |
ToLongFunction | 代表一个产生long值结果的功能。 |
UnaryOperator | 表示上产生相同类型的操作数的结果的单个操作数的操作。 |
总体来说这些接口一共分为五类
Function
Function接口定义:
接受一个一个泛型T,返回一个泛型R
@FunctionalInterface
public interface Function<T, R>
所定义的抽象方法,(lambda表达式只能定义一个抽象方法);
R apply(T t);
使用案例
public static void main(String[] args) {
DoubleFunction<Integer> doubleToInt = a -> (int)a;
System.out.println(doubleToInt.apply(8.8));
}
输出结果
8
Consumer
接口的定义
接受一个泛型T,不返回任何东西
@FunctionalInterface
public interface Consumer<T>
唯一的lambda表达式抽象方法
void accept(T t);
案例
DoubleConsumer square = a -> System.out.println(Math.sqrt(a));
DoubleConsumer pow = a -> System.out.println(Math.pow(a, a));
square.accept(2.5);
pow.accept(85.5);
}
输出结果
1.5811388300841898
1.5244135810422116E165
Predicate
接口的定义
输入一个泛型,返回一个Boolean型
@FunctionalInterface
public interface Predicate<T>
唯一的lambda抽象方法
boolean test(T t);
案例
public static void main(String[] args) {
DoublePredicate isDouble = a -> a > 2.0;
System.out.println(isDouble.test(1.9));
}
输出结果
false
Supplier
接口定义
不接受任何参数,返回一个泛型T
public interface Supplier<T> {
/**
* Gets a result.
*
* @return a result
*/
T get();
}
案例
DoubleSupplier addition = () -> {
return 2.5;
};
DoubleSupplier don = () -> {
return 54.6;
};
System.out.println(addition.getAsDouble());
System.out.println(don.getAsDouble());
}
输出结果
2.5
54.6