gpt4 book ai didi

java - 在 Java 8 中将 while 循环转换为流

转载 作者:搜寻专家 更新时间:2023-11-01 02:19:56 24 4
gpt4 key购买 nike

作为练习,我将一些旧代码转换为功能流。我对流了解不多。转换这段代码似乎应该很简单,但我运气不佳。该方法从给定的整数开始,将其传递给 isPrime,如果它是质数,则返回 true。然后交出要打印的新(下一个)质数。如果 isPrime 为假,则 i 递增,我们检查下一个整数。

private static int nextPrime(final int number) {
int i = number + 1;

while (!isPrime(i)) {
i++;
}

return i;
}

最佳答案

除了利用并行性之外,我认为没有理由为此使用 Stream(如果素数恰好相距很远,但在 int 中则不然 边界,所以基本上没有任何好处)。

您可以迭代升序整数(从 number + 1 开始)的 IntStream 并仅过滤质数。当不可避免地找到一个时,您可以返回第一个。

private static int nextPrime(final int number) {
return IntStream.iterate(number + 1, i -> i + 1)
.filter(Test::isPrime)
.findFirst()
.getAsInt();
}

注意:我用来测试这个的类称为 Test,如方法引用所示。您应该将其更改为您的类(class)名称。

关于java - 在 Java 8 中将 while 循环转换为流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49076314/

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