假设我有一个可观察的发射整数。我想对所有奇数加1,对所有偶数减去1。
用RxJava实现这一目标的干净方法是什么?
我正在努力了解如何使用groupBy
来实现这一目标,因为在odd
之后我还没有一种清晰的方法来获得even
和groupBy
的可观察性,然后将不同的函数映射到每个函数(并可能在之后合并它们)。
感谢您的帮助!
答案 0 :(得分:1)
简单地有条件地映射它们如何?
Observable.range(1, 10)
.map(v -> {
if (v % 2 == 0) {
return v - 1;
}
return v + 1;
})
.subscribe(System.out::println)
更多地使用groupBy
:
Observable.range(1, 10)
.groupBy(v -> v % 2 == 0)
.flatMap(group -> {
if (group.getKey()) {
return group.map(v -> v + 1);
}
return group.map(v -> v - 1);
})
.subscribe(System.out::println);