RxJava は ReactiveX (Reactive Extensions) の JVM 実装で、平たく言うと非同期のイベント処理を簡素に書ける、単なるライブラリです。 "Rx = Observables + LINQ + Schedulers" などと表現されます。なんですかこれ?大げさな抽象概念を掲げすぎて意味不明になる現象(モナド現象)になっていませんか? Observable とは Observable は発生順に並んだイベントのストリームです。 Java8 では、何らかの型Tの並びを Stream として表現し、この並びに対して関数的な操作を適用する API が用意されています。例えば Stream.map() は関数 Function を引数に取り、関数で変換された新しい Stream を返します。戻り値として Stream が得られるので、同じように操作を連結して定義して
![ReactiveX/RxJava の概要 - A Memorandum](https://cdn-ak-scissors.b.st-hatena.com/image/square/7f5ae6501c3cdc4b4f17e3b12581ad94ca8c724a/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2FN%2FNaotsugu%2F20150501%2F20150501012201.png)