如何在 Java 中使用 lambda 表达式实现 Fibonacci 数列?


Fibonacci 是一个数字序列,其中每个数字(前两个数字除外)都是前两个数字的和,例如0、1、1、2、3、5、8、13、21等。Fibonacci 数字序列的定义为:“F(n)=F(n-1)+F(n-2)”。

在以下示例中,我们可以借助StreamAPIlambda表达式来实现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]

更新于: 2020 年 7 月 13 日

3K+ 查看

启动您的 事业

完成课程即可获得认证

开始使用
广告
© . All rights reserved.