Java8函数式接口java.util.function速查大全
在Java8中,提供了很多函数式接口,其中包括java.util.function
中定义的函数式接口。在此文中,我们将介绍这些接口的分类、定义及用法,同时提供一些简单的示例,以方便开发者理解和使用。
分类
Supplier系列
Supplier<T>
:用于提供一个T类型的值,无参数的输入,有一个T类型的输出;BooleanSupplier
:用于提供一个boolean类型的值,无参数的输入,有一个boolean类型的输出;DoubleSupplier
:用于提供一个double类型的值,无参数的输入,有一个double类型的输出;IntSupplier
:用于提供一个int类型的值,无参数的输入,有一个int类型的输出;LongSupplier
:用于提供一个long类型的值,无参数的输入,有一个long类型的输出;
Consumer系列
Consumer<T>
:对一个T类型的对象进行操作,有一个T类型的输入,无输出;BiConsumer<T, U>
:对两个对象进行操作,有两个输入(T、U类型),无输出;
Function系列
Function<T, R>
:将T类型的对象映射为R类型的对象,有一个T类型的输入,有一个R类型的输出;BiFunction<T, U, R>
:将T、U类型的对象映射为R类型的对象,有两个输入(T、U类型),有一个R类型的输出;UnaryOperator<T>
:无论输入什么,都返回一个T类型的对象,有一个T类型的输入,有一个T类型的输出;BinaryOperator<T>
:将两个T类型的对象合并为一个T类型的对象,有两个输入(T类型),有一个T类型的输出;
Predicate系列
Predicate<T>
:用于对一个T类型的对象进行评估,返回一个boolean类型的结果,有一个T类型的输入,有一个boolean类型的输出;BiPredicate<T, U>
:用于对两个对象进行评估,返回一个boolean类型的结果,有两个输入(T、U类型),有一个boolean类型的输出;
Operator系列
IntUnaryOperator
:用于对一个int类型的对象进行计算,有一个int类型的输入,有一个int类型的输出;IntBinaryOperator
:用于对两个int类型的对象进行计算,有两个输入(int类型),有一个int类型的输出;LongUnaryOperator
:用于对一个long类型的对象进行计算,有一个long类型的输入,有一个long类型的输出;LongBinaryOperator
:用于对两个long类型的对象进行计算,有两个输入(long类型),有一个long类型的输出;DoubleUnaryOperator
:用于对一个double类型的对象进行计算,有一个double类型的输入,有一个double类型的输出;DoubleBinaryOperator
:用于对两个double类型的对象进行计算,有两个输入(double类型),有一个double类型的输出;
示例
使用Function
Function接口的作用是将一个类型的对象转换为另一个类型的对象,下面是一个使用这个接口的示例:
public static void main(String[] args) {
Function<String, Integer> lengthFunction = String::length;
int length = lengthFunction.apply("Hello World");
System.out.println(length); // 输出:11
}
在上述示例中,我们使用了String
类型的对象,将其转换为Integer
类型的对象,将length
函数赋值给变量lengthFunction
,调用lengthFunction.apply("Hello World")
并传入"Hello World"
时,输出的结果为11
。
使用Predicate
Predicate接口的作用是评估一个对象是否符合特定的条件,下面是一个使用这个接口的示例:
public static void main(String[] args) {
Predicate<String> startsWithA = s -> s.startsWith("A");
System.out.println(startsWithA.test("Apple")); // 输出:true
System.out.println(startsWithA.test("Orange")); // 输出:false
}
在上述示例中,我们定义了一个startsWithA
函数,它将传入的字符串是否以A开头作为其评估条件,并通过调用startsWithA.test("Apple")
和startsWithA.test("Orange")
对两个不同的字符串进行评估,输出结果分别为true
和false
。
以上示例仅是java.util.function包中函数式接口的简单应用,开发者可以根据具体的业务需求选择不同的接口,实现相应的函数逻辑。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java8函数式接口java.util.function速查大全 - Python技术站