从Flowable一次发出一个List项

Orb*_*bit 4 java rx-java rx-java2

我有一个方法返回一个Flowable<RealmResults<MyClass>>.对于那些不熟悉Realm的人来说,RealmResults只是一个简单List的项目.

给定a Flowable<RealmResults<MyClass>>,我想发出每个MyClass项目,以便我可以map()对每个项目执行操作.

我正在寻找以下内容:

getItems() // returns a Flowable<RealmResults<MyClass>>
    .emitOneAtATime() // Example operator
    .map(obj -> obj + "")
    // etc
Run Code Online (Sandbox Code Playgroud)

什么操作符将按顺序发出每个List项?

Ada*_*Dye 11

你会的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);
Run Code Online (Sandbox Code Playgroud)