如何解决IntStream分步迭代
实际上range
,这是理想的。
IntStream.range(0, 100).filter(x -> x % 3 == 0); //107,566 ns/op [Average]
由于以下几行代码
IntStream.range(0, 100).filter(x -> x % 3 == 0).forEach((x) -> x = x + 2);
IntStream.range(0, 100 / 3).map(x -> x * 3).forEach((x) -> x = x + 2);
int limit = ( 100 / 3 ) + 1;
IntStream.iterate(0, n -> n + 3).limit(limit).forEach((x) -> x = x + 2);
显示这些基准结果
Benchmark Mode Cnt score Error Units
Benchmark.intStreamTest avgt 5 485,473 ± 58,402 ns/op
Benchmark.intStreamTest2 avgt 5 202,135 ± 7,237 ns/op
Benchmark.intStreamTest3 avgt 5 280,307 ± 41,772 ns/op
解决方法
如何使用IntStream在step(3)中迭代数字范围(0-100)?
我试过了iterate
,但这从未停止执行。
IntStream.iterate(0,n -> n + 3).filter(x -> x > 0 && x < 100).forEach(System.out::println)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。