Java Stream generate()方法及实例
Stream generate(Supplier < **T > **s)返回一个无限连续的无序流,其中每个元素都是由提供的Supplier生成的。这适用于生成常数流、随机元素流等。
语法:
static <T> Stream<T> generate(Supplier<T> s)
其中,流是一个接口,T
是流元素的类型。
s是生成元素的供应商
元素的供应商,其返回值是
一个新的无限连续的
无序的流。
例1: 生成随机整数流。
// Java code for Stream.generate()
// to generate an infinite sequential
// unordered stream
import java.util.*;
import java.util.stream.Stream;
class GFG {
// Driver code
public static void main(String[] args) {
// using Stream.generate() method
// to generate 5 random Integer values
Stream.generate(new Random()::nextInt)
.limit(5).forEach(System.out::println);
}
}
输出:
697197501
50139200
321540264
1042847655
-770409472
例2: 生成随机双胞胎流。
// Java code for Stream.generate()
// to generate an infinite sequential
// unordered stream
import java.util.*;
import java.util.stream.Stream;
class GFG {
// Driver code
public static void main(String[] args) {
// using Stream.generate() method
// to generate 8 random Double values
Stream.generate(new Random()::nextDouble)
.limit(8).forEach(System.out::println);
}
}
输出:
0.5390254520295368
0.8477297185718798
0.23703352435894398
0.09156832989674057
0.9671295321757734
0.9989670394813547
0.8909416330715489
0.08177639888829968