🐈
RxJava2で一つ前の値を参照したい
RxJava2 でコードを書いていると、1つ前の値が欲しいんだけどな〜と思う時がよくあります。
こうした時、例えば対象の Stream とその Stream に skip(1) した Stream を zip で合成すれば良いじゃないか!と思うかもしれません。しかし、この実装では2つ目の値が流れてくるまで値を取り出すことができません。
もうちょっとうまいことできないかな?ということで作ってみたのがこんなコードです。
-
scanとfilterで要素数が 1 or 2 のListを生成 -
Listから一つ前の値と現在の値の両方を持つChangeに変換
ということをしています。
こんな感じで1つ目の値が流れてきた時でも値を取り出すことのできる Stream を生成することができます。
Discussion