作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在弄清楚如何使用流生成无限大小的顺序流时遇到了一个小问题,其中包含斐波那契数列中的所有数字。
我怎样才能打印出无限流?任何建议都有帮助,谢谢。
最佳答案
public class Fibonacci {
public static void main(String[] args) {
IntStream stream = IntStream.generate(new FibonacciSupplier());
stream.limit(20).forEach(System.out::println);
}
private static class FibonacciSupplier implements IntSupplier {
int current = 1;
int previous = 0;
@Override
public int getAsInt() {
int result = current;
current = previous + current;
previous = result;
return result;
}
}
}
但是请注意,一旦到达第 47 个元素,此流就不能无限,该值太大而无法放入正整数。
关于java - 使用Intstream生成无限斐波那契数列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47520654/
我是一名优秀的程序员,十分优秀!