DIB*_*its 4 java java-8 java-stream
在网络中,我发现只有一种方法可以停止迭代方法.通过使用limit()函数.但是,这会迭代一个混合的循环.我想用来停止一个谓词.
...
Stream.iterate(0, i -> i*2).while(i -> i < MAX)
...
Run Code Online (Sandbox Code Playgroud)
有没有办法用Streams做到这一点?
更新1:使用Java 8
Nam*_*man 10
使用Java-9或更高版本,一种方法是使用Stream.takeWhile
:
Stream.iterate(1, i -> i * 2) // notice identity value in seed
.takeWhile(i -> i < MAX)
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用 Stream.iterate
Stream.iterate(1, i -> i < MAX, i -> i * 2)
Run Code Online (Sandbox Code Playgroud)