Stream generate(Supplier<T> s) returns an infinite sequential unordered stream where each element is generated by the provided Supplier. This is suitable for generating constant streams, streams of random elements, etc.
Syntax :
static <T> Stream<T> generate(Supplier<T> s)
Where, Stream is an interface and T
is the type of stream elements.
s is the Supplier of generated
elements and the return value is
a new infinite sequential
unordered Stream.
Example 1 : To generate stream of random integer.
import java.util.*;
import java.util.stream.Stream;
class GFG {
public static void main(String[] args) {
Stream.generate( new Random()::nextInt)
.limit( 5 ).forEach(System.out::println);
}
}
|
Output :
697197501
50139200
321540264
1042847655
-770409472
Example 2 : To generate stream of random Double.
import java.util.*;
import java.util.stream.Stream;
class GFG {
public static void main(String[] args) {
Stream.generate( new Random()::nextDouble)
.limit( 8 ).forEach(System.out::println);
}
}
|
Output :
0.5390254520295368
0.8477297185718798
0.23703352435894398
0.09156832989674057
0.9671295321757734
0.9989670394813547
0.8909416330715489
0.08177639888829968