如何在2个可观察量之间得到一组差异?

时间:2018-01-11 11:20:31

标签: rx-java reactive-programming rx-java2

我已经obs1 = Observable.range(1, 10)然后obs2 = Observable.range(5, 10)(通常序列不会按顺序递增)。

我想获得 obs2和obs1 之间的设定差异,以从obs2中获取不在obs1中的值(可观察到它们)。

1 个答案:

答案 0 :(得分:1)

您可以将obs1中的项目收集到HashSet,然后通过obs2过滤set::contains

obs1.collect(HashSet::new, (a, b) -> a.add(b))
.flatMapObservable(set -> 
    obs2.filter(set::contains)
)
.subscribe(System.out::println);