gpt4 book ai didi

java - 如何使用 java stream API 生成 IntStream

转载 作者:搜寻专家 更新时间:2023-10-31 19:37:41 25 4
gpt4 key购买 nike

如何用新的 Java Stream API 替换此代码:

int n = someFunction();    // n > 0
for (int i = 3; i * i <= n; i += 2)
System.out.print(i);

我尝试使用 IntStream.iterate(3, i -> i + 2),但我无法添加停止条件。

据我所知,我不能在这里使用 .limit(int) 方法。

有什么想法吗?

最佳答案

你可以使用 limit(int) :您必须通过 2 的步骤确定 3 和 sqrt(n) 之间有多少元素。正好有 (sqrt(n) - 3)/2 + 1 元素,所以你可以这样写:

IntStream.iterate(3, i -> i + 2).limit((int) (Math.sqrt(n) - 3) / 2 + 1);

话虽如此,您也可以创建一个从 3 到 sqrt(n) 的封闭范围并过滤掉偶数值,如下所示:

IntStream.rangeClosed(3, (int) Math.sqrt(n)).filter(i -> i % 2 > 0)

关于java - 如何使用 java stream API 生成 IntStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33329612/

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