Android 如何使用RxJava 1生成斐波那契序列?

Android 如何使用RxJava 1生成斐波那契序列?,android,rx-java,fibonacci,Android,Rx Java,Fibonacci,斐波那契只是一个更一般问题的简单例子,其中下一个元素依赖于前一个元素。提供了一些很好的方法,但它们仍然有点粗糙。也推荐使用,但在RxJava 1中不可用 有什么替代方法可以做到这一点?是否有一个等价物 最终整数=9; // [0,] 1, 1, 2, 3, 5, 8, 13, 21, 34 final Observable fibonacci=Observable.just(0).repeat().scan(新的一对(0,1),新的Func2(){ @凌驾 公共对呼叫(对对、整数){ //Log

斐波那契只是一个更一般问题的简单例子,其中下一个元素依赖于前一个元素。提供了一些很好的方法,但它们仍然有点粗糙。也推荐使用,但在RxJava 1中不可用

有什么替代方法可以做到这一点?是否有一个等价物

最终整数=9;
// [0,] 1, 1, 2, 3, 5, 8, 13, 21, 34
final Observable fibonacci=Observable.just(0).repeat().scan(新的一对(0,1),新的Func2(){
@凌驾
公共对呼叫(对对、整数){
//Log.d(String.format(“对:%s,整数:%s”,对,整数));
int lhs=pair.getValue();
int rhs=pair.getKey()+lhs;
返回新的一对(左、右);
}
}).map(新函数1(){
@凌驾
公共整数调用(对){
//Log.d(字符串格式(“映射:%s”,成对));
返回pair.getValue();
}
});
最终列表结果=fibonacci.take(number.toList().toBlocking().single();
Log.d(String.format(“%s”,result));

为什么要用RxJava执行此操作?你为什么要给自己制造这个问题?这看起来不像是现实生活中的问题。为什么是RxJava?因为它没有要管理的状态,我们可以轻松地将此操作发送到后台线程。这是一个真正的问题。如果服务器实现为从时间戳向客户机发送新数据,则必须在网络请求中包含上一个响应的时间戳。这将使下一个请求取决于上一个请求的时间戳。1.x中有用于此目的的
SyncOnSubscribe
。对于一般情况,当您想知道上一个元素时,请使用
scan
操作符。@akarnokd谢谢。这可能就是我想要的,被否决了?我相信它确实回答了“如何使用RxJava 1生成斐波那契序列?”的问题。我没有投反对票,但这是一个我没有要求的例子。