如何在Java中使用Lambda表达式实现Fibonacci系列?
斐波那契 是数字的序列,其中前两个数字后,每数是前两个数字等的总和为0,1,1,2,3,5,8,13,21等。通过使用“F(n)=F(n-1)+F(n-2)”定义的斐波那契 数列。
在以下示例中,我们可以借助Stream API 和lambda expression来实现Fibonacci 系列。Stream.iterate()方法返回一个无限连续有序通过函数的迭代应用产生的初始元素种子流,生产由种子中,f(种子),F(F(种子))等的流
示例
import java.util.List; import java.util.stream.*; public class FibonacciTest { public static void main(String args[]) { System.out.println(FibonacciTest.generate(10)); } public static List generate(int series) { return Stream.iterate(new int[]{0, 1}, s -> new int[]{s[1], s[0] + s[1]}) // lambda expression .limit(series) .map(n -> n[0]) .collect(Collectors.toList()); } }
输出结果
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]