有没有办法用谓词停止 Stream.iterate()



在网络上,我只找到了一种方法来停止迭代方法。通过使用 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)

最新更新