The UnaryOperator Interface<T> is a part of the java.util.function package which has been introduced since Java 8, to implement functional programming in Java. It represents a function which takes in one argument and operates on it. However what distinguishes it from a normal Function is that both its argument and return type are the same.
Hence this functional interface which takes in one generic namely:-
Java
Java
Java
Java
- T: denotes the type of the input argument to the operation
- T apply(T t)
- default <V> Function<T, V> andThen(Function<? super R, ? extends V> after)
- default <V> Function<V, R> compose(Function<? super V, ? extends T> before)
Functions in UnaryOperator Interface
The UnaryOperator interface consists of the following functions:1. identity()
This method returns a UnaryOperator which takes in one value and returns it. The returned UnaryOperator does not perform any operation on its only value. Syntax:static UnaryOperator identity()Parameters: This method does not take in any parameter. Returns: A UnaryOperator which takes in one value and returns it. Below is the code to illustrate accept() method: Program 1:
import java.util.function.UnaryOperator;
public class GFG {
public static void main(String args[])
{
// Instantiate the UnaryOperator interface
UnaryOperator<Boolean>
op = UnaryOperator.identity();
// Apply identify() method
System.out.println(op.apply(true));
}
}
Output:
Below are few examples to demonstrate the methods inherited from Function<T, T>:
1.accept()
true
import java.util.function.Function;
import java.util.function.UnaryOperator;
public class GFG {
public static void main(String args[])
{
UnaryOperator<Integer> xor = a -> a ^ 1;
System.out.println(xor.apply(2));
}
}
Output:
2.addThen()
3
import java.util.function.Function;
import java.util.function.UnaryOperator;
public class GFG {
public static void main(String args[])
{
UnaryOperator<Integer> xor = a -> a ^ 1;
UnaryOperator<Integer> and = a -> a & 1;
Function<Integer, Integer> compose = xor.andThen(and);
System.out.println(compose.apply(2));
}
}
Output:
3.compose()
1
import java.util.function.Function;
import java.util.function.UnaryOperator;
public class GFG {
public static void main(String args[])
{
UnaryOperator<Integer> xor = a -> a ^ 1;
UnaryOperator<Integer> and = a -> a & 1;
Function<Integer, Integer> compose = xor.compose(and);
System.out.println(compose.apply(231));
}
}
Output:
0