java.util.function.DoubleFunction is a Functional Interface.
It has one abstract method, which takes no input but returns a double value.
It can be used as a supplier of double values, and it can be used to create a doublestream
- double getAsDouble() :- it returns a double value, that’s all it’s declaration says.
In this article, we will write an implementation, which returns a random number.
DoubleSupplier rand = Math::random;
We used method referencing to return random number. Those who don’t know, Math.random returns a value between 0.0 to 1.0.
And we can multiply the return value by an integer – X to get a random number between 0.0 to X.
(rand.getAsDouble() * 100)
The above code returns a random value between 0.0 to 100.0.
We can run the above code in a loop 10-times to see the variation in result.
Complete Code :-
import java.util.function.DoubleSupplier; import static java.lang.System.out; public class DoubleSupplierTest { public static void main(String ... args) { //Lambda which returns a random number DoubleSupplier rand = Math::random; //print random number for(int i = 0; i < 10; ++i) { out.println("random number between 1 to 100 - " + (rand.getAsDouble() * 100) ); } } }
Output :-
random number between 1 to 100 - 94.67715169930938 random number between 1 to 100 - 10.868200959583184 random number between 1 to 100 - 70.66146653170898 random number between 1 to 100 - 19.21242680675147 random number between 1 to 100 - 22.630408249996357 random number between 1 to 100 - 78.70537350189699 random number between 1 to 100 - 90.24089926128889 random number between 1 to 100 - 70.92636000175175 random number between 1 to 100 - 84.60645160248119 random number between 1 to 100 - 80.92050003712255