如何在 Java 中使用 lambda 表达式实现 Fibonacci 数列?
Fibonacci 是一个数字序列,其中每个数字(前两个数字除外)都是前两个数字的和,例如0、1、1、2、3、5、8、13、21等。Fibonacci 数字序列的定义为:“F(n)=F(n-1)+F(n-2)”。
在以下示例中,我们可以借助StreamAPI 和lambda表达式来实现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]
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP