gpt4 book ai didi

java - IntStream 分步迭代

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:05:21 26 4
gpt4 key购买 nike

如何使用 IntStream 在步骤 (3) 中遍历数字范围 (0-100)?

我试过 iterate,但这永远不会停止执行。

IntStream.iterate(0, n -> n + 3).filter(x -> x > 0 && x < 100).forEach(System.out::println)

最佳答案

实际上 range 非常适合这个。

IntStream.range(0, 100).filter(x -> x % 3 == 0); //107,566 ns/op [Average]

编辑:Holgers 的解决方案是执行速度最快的解决方案。

由于下面的代码行

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

关于java - IntStream 分步迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40358827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com