一尘不染

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

java

我有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 进行相同操作的人,我将非常感激。


阅读 423

收藏
2020-12-03

共1个答案

一尘不染

如果Observable发出List,则可以使用以下运算符:

  • flatMapIterable (将您的列表转换为可观察项)
  • map (将您的商品转换为其他商品)
  • toList 运算符(将完成的Observable转换为Observable,以从完成的Observable发出项目列表)
        Observable<SourceObjet> source = ...
    source.flatMapIterable(list -> list)
          .map(item -> new ResultsObject().convertFromSource(item))
          .toList()
          .subscribe(transformedList -> ...);
2020-12-03