我试图用 Java 8 编写一个简单的素数程序。下面是程序。我也想减少 isPrime()
中的代码。 Is there something that filters the elements from 2
to n/2
, and then apply filter for n%i == 0
which would make isPrime
?
import static java.util.stream.Collectors.toList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;
public class Stream1 {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 20);
// Prime number
System.out.println(numbers.stream()
.filter(Stream1::isPrime)
.collect(toList()));
}
public static boolean isPrime(int number) {
for (int i = 2; i <= number / 2; i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}
原文由 user3310115 发布,翻译遵循 CC BY-SA 4.0 许可协议
IntStream 可用于生成整数流
或者