Stream.generate
时间: 2024-09-12 16:17:38 浏览: 51
Stream_Java8.pdf
`Stream.generate`是Java 8中Stream API提供的一个静态方法,用于创建一个无限流(infinite stream)。这个方法接受一个`Supplier<T>`类型的lambda表达式作为参数,这个lambda表达式负责生成流中的每个元素。由于流是无限的,所以通常需要配合`limit`方法来限制流的大小,或者使用`takeWhile`、`dropWhile`等方法来控制流的生成。
`Stream.generate`生成的流是无序的,因为流中的元素是根据提供的`Supplier`在运行时按需生成的。这与`Stream.iterate`不同,后者可以生成一个有序的无限序列。
以下是`Stream.generate`的一个简单示例:
```java
import java.util.stream.Stream;
public class StreamGenerateExample {
public static void main(String[] args) {
Stream.generate(Math::random)
.limit(5)
.forEach(System.out::println);
}
}
```
在这个例子中,我们使用`Math::random`来生成一个包含5个随机数的流。每次调用`Math.random()`都会得到一个0.0到1.0之间的随机浮点数。
阅读全文