首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从列表中获取一些数据,并在RxJava中使用该数据创建另一个列表

如何从列表中获取一些数据,并在RxJava中使用该数据创建另一个列表
EN

Stack Overflow用户
提问于 2016-05-31 15:27:22
回答 1查看 37关注 0票数 0

例如,我从API中获得了一个对象。此对象包含ArrayList。这个ArrayList包含有我需要的数据作为另一个列表的对象。

我有这个代码,它运行得很好

代码语言:javascript
运行
复制
Observable<SomePresentationModel> observable = apiService.getData()
    .map(data -> {
      List<Foo> foo = new ArrayList<>();
      for (Bar bar : data.getBars()) {
        foo.addAll(bar.getSomething());
      }
      return asPresentationModel(foo);
    });

但这看起来很糟糕,我肯定有办法做得更好,但我不知道怎么做,有什么办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-31 15:33:16

您可以使用flatMapIterable / toList从列表中释放项,然后重新生成列表(请参阅下面)。请注意,只有当toList返回一个已完成的Observable时,apiServiceService.getData()才能工作。否则,它将不会发出列表。

代码语言:javascript
运行
复制
Observable<SomePresentationModel> observable = apiService.getData()
              .flatMapIterable(data -> data.getBars())
              .map(elt -> elt.getSomething())
              .toList()
              .map(foo -> asPresentationModel(foo)); 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37549788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档