如何在Java中使用Lambda表达式生成素数?
甲素 数 是一个数字,是大于 大于1 和除以1 或本身 只。它换句话说,它不能由其他数字比本身或1素数的产生是分2,3,5,7,11,13,17等。
在下面的示例中,我们可以借助StreamAPI和lambda表达式生成素数。
示例
import java.util.*;
import java.util.stream.*;
public class PrimeNumberLambdaTest {
public static void main(String[] args) {
List<Integer> generate = PrimeNumberLambdaTest.generate(10);
System.out.println(generate);
}
public static List<Integer> generate(int series) {
Set<Integer> set = new TreeSet<>();
return Stream.iterate(1, i -> ++i)
.filter(i -> i %2 != 0) // lambda expression .filter(i -> {
set.add(i);
return 0 == set.stream()
.filter(p -> p != 1)
.filter(p -> !Objects.equals(p, i))
.filter(p -> i % p == 0)
.count();
})
.limit(series)
.collect(Collectors.toList());
}
}输出结果
[1, 3, 5, 7, 11, 13, 17, 19, 23, 29]
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西