在web上,我只找到了一种停止迭代方法的方法。通过使用limit()函数。但这会迭代一个具体的循环数。我想用它来停止一个谓词。
...
Stream.iterate(0, i -> i*2).while(i -> i < MAX)
...
有没有办法用Streams做到这一点?
更新1:使用Java 8
使用Java-9或以上,一种方法是使用Stream.takeWhile
作为:
Stream.iterate(1, i -> i * 2) // notice identity value in seed
.takeWhile(i -> i < MAX)
另一种方法是使用Stream.interate
Stream.iterate(1, i -> i < MAX, i -> i * 2)