Skip to content
geeksforgeeks
  • Tutorials
    • Python
    • Java
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
    • Practice Coding Problems
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Java Arrays
  • Java Strings
  • Java OOPs
  • Java Collection
  • Java 8 Tutorial
  • Java Multithreading
  • Java Exception Handling
  • Java Programs
  • Java Project
  • Java Collections Interview
  • Java Interview Questions
  • Java MCQs
  • Spring
  • Spring MVC
  • Spring Boot
  • Hibernate
Open In App
Next Article:
DoubleUnaryOperator Interface in Java
Next article icon

DoubleUnaryOperator Interface in Java

Last Updated : 18 Nov, 2019
Comments
Improve
Suggest changes
Like Article
Like
Report
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 function 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 Java
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));     } } 
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 Java
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));     } } 
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: Java
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));     } } 
Output:
  72.0  
Program 2: To demonstrate when NullPointerException is returned. Java
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);         }     } } 
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: Java
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));     } } 
Output:
  24.0  
Program 2: To demonstrate when NullPointerException is returned. Java
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);         }     } } 
Output:
  Exception: java.lang.NullPointerException  

Next Article
DoubleUnaryOperator Interface in Java

P

psil123
Improve
Article Tags :
  • Java
  • Java - util package
  • java-basics
  • java-interfaces
  • Java 8
  • Java-Functional Programming
Practice Tags :
  • Java

Similar Reads

    BinaryOperator Interface in Java
    The BinaryOperator 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 binary operator which takes two operands and operates on them to produce a result. However, what distinguishes it fro
    2 min read
    Java.util.function.DoubleBinaryOperator interface with Examples
    The DoubleBinaryOperator interface was introduced in Java 8. It represents an operation on two double values and returns the result as a double value. It is a functional interface and thus can be used as a lambda expression or in a method reference. It is mostly used when the operation needs to be e
    2 min read
    DoubleFunction Interface in Java with Examples
    The DoubleFunction 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 function which takes in a double-valued argument and produces a result of type R. This functional interface takes in only one
    1 min read
    Function Interface in Java
    The Function Interface is a part of the java.util.function package that has been introduced since Java 8, to implement functional programming in Java. It represents a function that takes in one argument and produces a result. Hence, this functional interface takes in 2 generics, namely as follows:T:
    6 min read
    Evolution of Interface in Java
    In Java, interfaces define a contract for classes without specifying how the methods are implemented. With time, Java has introduced major enhancements or we can say evolution of interfaces to make them more powerful. So, in this article, we will explore the evolution of interfaces in Java from Java
    3 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences