我有一个“父”对象列表,我想为每个对象都得到一个“子”列表。因此我想要一张父母和孩子名单的地图。所以结果是
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
是两个值left
和right
的简单包装。关于java - RxJava-将列表和请求转换为 map ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43736186/