Implement java.util.function.DoubleSupplier to return random numbers - java 11 and above
Author : Anurag Anand
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