UnaryOperator功能接口Java示例
时间:2020-01-09 10:35:15 来源:igfitidea点击:
在这篇文章中,我们将看到Java java.util.function.UnaryOperator功能接口的示例。
UnaryOperator功能接口表示对单个操作数的操作,返回与其操作数相同类型的结果。 UnaryOperator扩展了java.util.function.Function接口,并为操作数和结果为相同类型的情况提供行为。由于它扩展了Function,因此继承了Function接口的所有方法
- andThen(Function <?super R,?之后扩展V>)–这是一个默认接口方法,该方法以另一个Function作为参数并返回一个组合的Function,该Function依次执行首先执行调用Function的操作,然后执行after操作。
- compose(Function <?super V,?在之前扩展T>)–这是Function接口中的默认方法,该方法将另一个Function用作参数,并返回一个组合函数,该函数按顺序执行先执行before操作,然后执行调用的操作功能。
- R apply(T t)–这里T是传递给方法的参数的类型,它返回类型R的值。这是此功能接口中的抽象方法。如果编写的Lambda表达式采用一种类型的单个参数并返回相同类型的值,则可以将该Lambda表达式编写为UnaryOperator内置功能接口的实现,其中lambda表达式实现apply()方法。
identity()方法更改为返回UnaryOperator
- identity()–这是一个静态方法,该方法返回一个UnaryOperator,该UnaryOperator返回其输入参数。
UnaryOperator接口apply()方法示例
在示例中,apply方法被实现为返回数字平方的lambda表达式。传递的参数和返回值均为int类型。
import java.util.function.UnaryOperator; public class UnaryOperatorExample { public static void main(String[] args) { UnaryOperator unaryOperator = (n) -> n*n; System.out.println("3 squared is- " + unaryOperator.apply(3)); System.out.println("9 squared is- " + unaryOperator.apply(9)); } }
输出:
3 squared is- 9 9 squared is- 81
UnaryOperator功能接口和Then()方法示例
如果要获得一个平方的数字,然后向其添加另一个整数,可以使用andThen()方法将其作为一系列操作来完成。
import java.util.function.UnaryOperator; public class UnaryOperatorExample { public static void main(String[] args) { UnaryOperator<Integer> unaryOperator1 = (n) -> n*n; UnaryOperator<Integer> unaryOperator2 = (n) -> n + 1; System.out.println("Result- " + unaryOperator1.andThen(unaryOperator2).apply(3)); System.out.println("Result- " + unaryOperator1.andThen(unaryOperator2).apply(9)); } }
输出:
Result- 10 Result- 82
UnaryOperator功能接口compose()方法示例
compose()方法与andThen()方法相反,因此,如果我们采用前面的示例,首先添加一个整数,然后对其求平方,那么可以使用compose()方法来构成该序列。
import java.util.function.UnaryOperator; public class UnaryOperatorExample { public static void main(String[] args) { UnaryOperator<Integer> unaryOperator1 = (n) -> n*n; UnaryOperator<Integer> unaryOperator2 = (n) -> n + 1; System.out.println("Result- " + unaryOperator1.compose(unaryOperator2).apply(3)); System.out.println("Result- " + unaryOperator1.compose(unaryOperator2).apply(9)); } }
输出:
Result- 16 Result- 100