如何在 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