OSSであるrx-extrasのmapWithIndexを使えば簡単に実装できました。
導入
build.gradle
dependencies {
compile 'com.github.davidmoten:rxjava-extras:0.8'
}
コード(Kotlinです)
import com.github.davidmoten.rx.Transformers
Observable.just("a", "b", "c")
.compose(Transformers.mapWithIndex<String>())
.forEach { Log.d("test", "${it.index()} : ${it.value()}") }
他にも色々メソッドがあるので、便利なのが見つかるかも。