在网络上,我只找到了一种方法来停止迭代方法。通过使用 limit(( 函数。但这迭代了循环的创建组合。我想用于停止谓词。
...
Stream.iterate(0, i -> i*2).while(i -> i < MAX)
...
有没有办法用流做到这一点?
更新 1:使用 Java 8
使用 Java-9 或更高版本,一种方法是将Stream.takeWhile
用作:
Stream.iterate(1, i -> i * 2) // notice identity value in seed
.takeWhile(i -> i < MAX)
另一种选择是使用Stream.iterate
Stream.iterate(1, i -> i < MAX, i -> i * 2)