Java无限流
示例
可能会产生Stream不结束的。在无限上调用终端方法Stream会导致Stream进入无限循环。a的limit方法Stream可用于限制StreamJava处理的项数。
本示例生成一个Stream以数字1开头的所有自然数的。的每个连续项Stream比上一个高一个。通过调用this的limit方法Stream,仅Stream考虑和打印的前五个项。
//生成无限流-1,2,3,4,4,5,6,7,... IntStream naturalNumbers = IntStream.iterate(1, x -> x + 1); //仅打印前5个字词 naturalNumbers.limit(5).forEach(System.out::println);
输出:
1
2
3
4
5
生成无限流的另一种方法是使用该Stream.generate方法。此方法采用类型为Supplier的lambda。
//生成无限的随机数流 Stream<Double> infiniteRandomNumbers = Stream.generate(Math::random); //仅打印前10个随机数 infiniteRandomNumbers.limit(10).forEach(System.out::println);