RxJava:如何将对象列表转换为另一个对象的列表

我有SourceObjects列表,我需要将其转换为ResultObjects列表。

我可以使用ResultObject的方法将一个对象提取到另一个对象:

convertFromSource(srcObj);

当然我可以这样做:

public void onNext(List<SourceObject> srcObjects) {
   List<ResultsObject> resObjects = new ArrayList<>();
   for (SourceObject srcObj : srcObjects) {
       resObjects.add(new ResultsObject().convertFromSource(srcObj));
   }
}

但是,对于可以使用rxJava进行相同操作的人,我将非常感激。

最佳答案
如果您的Observable发出列表,您可以使用这些运算符:

> flatMapIterable(将您的列表转换成可观察的项目)
>地图(将您的项目转换为另一个项目)
> toList运算符(将完成的Observable转换为从完成的Observable发出项目列表的Observable)

Observable<SourceObjet> source = ...
source.flatMapIterable(list -> list)
      .map(item -> new ResultsObject().convertFromSource(item))
      .toList()
      .subscribe(transformedList -> ...);

转载注明原文:RxJava:如何将对象列表转换为另一个对象的列表 - 代码日志