Rx java Rx Java-组合每对两个可观测发射

Rx java Rx Java-组合每对两个可观测发射,rx-java,Rx Java,假设 有什么建议吗 伙计们,谢谢你们的支持,你们说得对 但深入挖掘我的真实案例,我遇到了更困难的问题。请看一看。这是否可以在IDE中进行检查,但应该可以正常工作 2 (2 / 1) 1 (2 / 2) 4 (4 / 1) 2 (4 / 2) 6 (6 / 1) 3 (6 / 1) 但什么是卡特尔产品 有关其定义和实现,请参见。这对我很有用。希望这对你也有帮助 Observable<Integer> o1 = Observable.just(0, 1, 2); Observable&

假设

有什么建议吗

伙计们,谢谢你们的支持,你们说得对


但深入挖掘我的真实案例,我遇到了更困难的问题。请看一看。

这是否可以在IDE中进行检查,但应该可以正常工作

2 (2 / 1)
1 (2 / 2)
4 (4 / 1)
2 (4 / 2)
6 (6 / 1)
3 (6 / 1)
但什么是卡特尔产品


有关其定义和实现,请参见。

这对我很有用。希望这对你也有帮助

Observable<Integer> o1 = Observable.just(0, 1, 2);
Observable<Integer> o2 = Observable.just(2, 4, 6);
MathUtil.cartesianProduct(Observable.just(o2, o1))
    .filter(array -> array[1] != 0)
    .map(array -> array[0] / array[1])
    .forEach(System.out::println);
可以在地图中按零进行过滤
Observable<Integer> o1 = Observable.just(0, 1, 2);
Observable<Integer> o2 = Observable.just(2, 4, 6);

Observable<Integer> o1nonZero = o1.filter(new Predicate<Integer>() {
    @Override
    public boolean test(Integer integer) throws Exception {
        return integer != null && integer != 0;
    }
})

o1nonZero.flatMap(new Function<Integer, Observable<Integer>>() {
    @Override
    public Observable<Integer> apply(Integer integer2) throws Exception {
        return o1.map(new Function<Integer, Integer>() {
            @Override
            public Integer apply(Integer integer1) throws Exception {
                return integer2 / integer1;
            }
        })
    }
})
Observable<Integer> o1 = Observable.just(0, 1, 2);
Observable<Integer> o2 = Observable.just(2, 4, 6);
MathUtil.cartesianProduct(Observable.just(o2, o1))
    .filter(array -> array[1] != 0)
    .map(array -> array[0] / array[1])
    .forEach(System.out::println);
    Observable<Integer> num1 = Observable.just(0, 1, 2);
    Observable<Integer> num2 = Observable.just(2, 4, 6);

    num2.flatMap(
            i2 -> num1.filter(i -> i != 0)
                    .map(i1 -> i2 / i1)
    ).subscribe(
            s -> Log.v("", "result-> " + s),
            error -> error.printStackTrace()
    );