用Java8的IntStream生成斐波那契數列
阿新 • • 發佈:2019-01-06
IntStream是Java8中提供的一個介面,利用它我們可以寫一個生成斐波那契數列的幫助類。在這裡,我假定數列從1開始。
import java.util.Arrays; import java.util.function.IntUnaryOperator; import java.util.stream.IntStream; public class Utility { public static IntStream generateFibonacciSequence() { return IntStream.iterate(1, new IntUnaryOperator() { private int prev = 0; @Override public int applyAsInt(int operand) { int temp = operand + prev; prev = operand; return temp; } }); } public static void main(String[] args) { // 生成前20項斐波那契數列 // [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, // 2584, 4181, 6765] System.out.println(Arrays.toString(Utility.generateFibonacciSequence().limit(20).toArray())); } }