DoubleUnaryOperator Interface in Java

The DoubleUnaryOperator Interface 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 funciton which takes in one argument and operates on it. Both its argument and return type are of double data type.It is very similar to using an object of type UnaryOperator<Double>.

The lambda expression assigned to an object of DoubleUnaryOperator type is used to define its applyAsDouble() which eventually applies the given operation on its argument.

Functions in DoubleUnaryOperator Interface

The DoubleUnaryOperator interface consists of the following functions:

1. identity()

This method returns a DoubleUnaryOperator which takes in one double value and returns it. The returned DoubleUnaryOperator does not perform any operation on its only value.

Syntax:



static  DoubleUnaryOperator identity()

Parameters: This method does not take in any parameter

Returns: A DoubleUnaryOperator which takes in one value and returns it.

Below is the code to illustrate identity() method:

Program

filter_none

edit
close

play_arrow

link
brightness_4
code

import java.util.function.DoubleUnaryOperator;
  
public class GFG {
    public static void main(String args[])
    {
        DoubleUnaryOperator
            op
            = DoubleUnaryOperator.identity();
  
        System.out.println(op.applyAsDouble(12.0));
    }
}

chevron_right


Output:

12.0

2. applyAsDouble()

This method takes in one double value, performs the given operation and returns a double-valued result.

Syntax:

double applyAsDouble(double operand)

Parameters: This method takes in one double valued parameter

Returns:: It returns a double valued result.

Below is the code to illustrate applyAsDouble() method:



Program

filter_none

edit
close

play_arrow

link
brightness_4
code

import java.util.function.DoubleUnaryOperator;
  
public class GFG {
    public static void main(String args[])
    {
        DoubleUnaryOperator op = a -> 2 * a;
  
        System.out.println(op.applyAsDouble(12.0));
    }
}

chevron_right


Output:

24.0

3. addThen()

It returns a composed DoubleUnaryOperator wherein the parameterized operator will be executed after the first one. If either operation throws an error, it is relayed to the caller of the composed operation.

Syntax:

default DoubleUnaryOperator andThen(DoubleUnaryOperator after)

Parameters: This method accepts a parameter after which is the operation to be applied after the current one.

Return Value: This method returns a composed DoubleUnaryOperator that applies the current operation first and then the after operation.

Exception: This method throws NullPointerException if the after operation is null.

Below is the code to illustrate addThen() method:

Program 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

import java.util.function.DoubleUnaryOperator;
  
public class GFG {
    public static void main(String args[])
    {
  
        DoubleUnaryOperator op = a -> 2 * a;
  
        op = op.andThen(a -> 3 * a);
  
        System.out.println(op.applyAsDouble(12.0));
    }
}

chevron_right


Output:



72.0

Program 2: To demonstrate when NullPointerException is returned.

filter_none

edit
close

play_arrow

link
brightness_4
code

import java.util.function.DoubleUnaryOperator;
  
public class GFG {
    public static void main(String args[])
    {
  
        try {
            DoubleUnaryOperator op = a -> 2 * a;
  
            op = op.andThen(null);
  
            System.out.println(op.applyAsDouble(12.0));
        }
        catch (Exception e) {
            System.out.println("Exception: " + e);
        }
    }
}

chevron_right


Output:

Exception: java.lang.NullPointerException

4. compose()

It returns a composed DoubleUnaryOperator wherein the parameterized operation will be executed first and then the first one. If either operation throws an error, it is relayed to the caller of the composed operation.

Syntax:

default DoubleUnaryOperator compose(DoubleUnaryOperator before)

Parameters: This method accepts a parameter before which is the operation to be applied first and then the current one

Return Value: This method returns a composed DoubleUnaryOperator that applies the current operator after the parameterized operator

Exception: This method throws NullPointerException if the before operation is null.

Below is the code to illustrate compose() method:

Program 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

import java.util.function.DoubleUnaryOperator;
  
public class GFG {
    public static void main(String args[])
    {
  
        DoubleUnaryOperator op = a -> a / 3;
  
        op = op.compose(a -> a * 6);
  
        System.out.println(op.applyAsDouble(12.0));
    }
}

chevron_right


Output:

24.0

Program 2: To demonstrate when NullPointerException is returned.

filter_none

edit
close

play_arrow

link
brightness_4
code

import java.util.function.DoubleUnaryOperator;
  
public class GFG {
    public static void main(String args[])
    {
  
        try {
            DoubleUnaryOperator op = a -> a / 3;
  
            op = op.compose(null);
  
            System.out.println(op.applyAsDouble(12.0));
        }
        catch (Exception e) {
            System.out.println("Exception: " + e);
        }
    }
}

chevron_right


Output:

Exception: java.lang.NullPointerException


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.