_Flowable<RealmResults<MyClass>>
_を返すメソッドがあります。レルムに精通していない人にとっては、RealmResults
は単なるアイテムのList
です。
_Flowable<RealmResults<MyClass>>
_が与えられた場合、各MyClass
アイテムを発行して、各アイテムに対してmap()
操作を実行できるようにします。
私は次のようなものを探しています:
_getItems() // returns a Flowable<RealmResults<MyClass>>
.emitOneAtATime() // Example operator
.map(obj -> obj + "")
// etc
_
どのオペレーターが各リストアイテムを順番に発行しますか?
flatMap(aList -> Flowable.fromIterable(aList))
になります。次に、個々のアイテムに対してmap()
を実行できます。アイテムを再収集する場合はtoList()
があります(注:これは新しいListインスタンスになります)。これらのメソッドを使用して、List<Integer>
を使用してさまざまなタイプを取得する方法を示す例を次に示します。
List<Integer> integerList = new ArrayList<>();
Flowable<Integer> intergerListFlowable =
Flowable
.just(integerList)//emits the list
.flatMap(list -> Flowable.fromIterable(list))//emits one by one
.map(integer -> integer + 1);
問題は、結果をFlowable<List<MyClass>>
として保持するのか、それとも順序を保持したままFlowable<MyClass>
として保持するのかということです。
最初の場合、
getItems()
.concatMap(results -> Flowable
.fromIterable(results)
.map(/* do your mapping */)
.toList()
)
2番目の場合、これで十分です。
getItems()
.concatMap(Flowable::fromIterable)
.map(/* do your mapping */)