我有一个“父”对象列表,我想为每个对象都得到一个“子”列表。因此我想要一张父母和孩子名单的地图。所以结果是

Map<Parent, List<Child>> result = new HashMap<>();

我的示例父列表:
List<Parent> parents = new ArrayList<>();
parents.add(new Parent(1, "Parent1"));
parents.add(new Parent(2, "Parent2"));
parents.add(new Parent(3, "Parent3"));
parents.add(new Parent(4, "Parent4"));
parents.add(new Parent(5, "Parent5"));

我想反复地问孩子们
 @GET("api/childs/{parentId}")
 Observable<Response<List<Child>>> getChilds(@Path("parentId") int parentId);

最佳的接收结构是什么?
谢谢您,
罗伯特

最佳答案

Observable.from(parents)
    .concatMap(p -> getChilds(p.getId())
        .map(Response::getValue)
        .map(children -> Pair.of(p, children)))
    .toMap(Pair::getLeft, Pair::getRight)

其中Pair是两个值leftright的简单包装。

关于java - RxJava-将列表和请求转换为 map ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43736186/

10-14 12:23