gpt4 book ai didi

java - 将 2 个 RxJava Observables 转换为 1 个 Map

转载 作者:行者123 更新时间:2023-12-02 03:30:12 25 4
gpt4 key购买 nike

我有以下场景。我正在使用 Retrofit2 从服务器获取数据。我要下载Collection<Account>Account实体,并为每个帐户下载 Collection<Project>Project实体。最后我想得到 Map<Account, Collection<Project>> accountsWithProjects .

我有以下方法:

  1. Observable<Collection<Account>> requestAllAccounts()
  2. Observable<Collection<Project>> requestProjectsInfoForTempoAccount(Account accunt)

问题:是否可以以某种方式压缩或创建这两个 react 流的每次迭代并将所有项目收集到 map 中?

如果有帮助的话,我还可以同步获取帐户的项目集合,但是不能在主线程上执行此操作,因为针对 Android 进行开发,并且必须在主线程上观察结果。

最佳答案

这里有一个更好的方法:

requestAllAccounts()
.flatMap(account -> requestProjectsInfoForTempoAccount(account),
(acccount, projects) -> Pair::of)
.toMap(Pair::key, Pair::value);

(对 Java 7 的扩展留给读者作为练习)

关于java - 将 2 个 RxJava Observables 转换为 1 个 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38202458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com