合并列表-类似于Sql中的Joins

时间:2018-08-01 00:51:01

标签: rx-java rx-java2

我有两个String的可观察列表。

我想使用zip或其他任何操作在rxjava中实现类似的功能。

如果list1有数据而list2没有任何数据-请考虑list1的数据集。

如果list1没有数据而list2有任何数据-请考虑list2的数据集。

如果list1和list2都具有数据,则取两个list的交集。

这不起作用->

        String[] LEFT = { "1", "2", "3", "4" };
        String[] RIGHT = { "5", "6", "7", "8" };
        Observable<String> LEFT_Observable = Observable.fromArray(LEFT);
        Observable<String> RIGHT_Observable = Observable.fromArray(RIGHT);
        ArrayList<String> result = new ArrayList<String>();
        System.out.println("HI");
        LEFT_Observable.join(RIGHT_Observable, i -> Observable.just(i), j -> Observable.just(j), (l, r) -> {
            System.out.println(l);
            System.out.println(r);
            result.add(l);
            return l + r;
        }).take(10).subscribe(System.out::println);

1 个答案:

答案 0 :(得分:2)

我采用的方法是:

  • viewWillAppear这两个流
  • override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) setTitleColorWhite(vc: self) } 每个值都考虑了“左”和“右”源的空值/空度
  • 应用merge删除重复项

所有看起来像这样:

filter

distinct代码很难看。我想知道是否还有一种更惯用的方式来做到这一点……但是它有效。

如果没有别的,希望至少能激发一些思想!