【发布时间】:2022-01-19 21:19:01
【问题描述】:
所以我看到了一些与此类似的问题,但无法将他们的答案应用于我的代码,我想知道如何做到这一点。所以基本上我有以下代码(简化):
public Map<String, List<String>> myFunction(String myApp) {
List<String> myIds = myService.getIds(myApp);
return myIds.stream()
.map(id -> {
final List<String> myObjects = myService.getListForId(id);
return new MyWrapper(id, myObjects);
}).collect(Collectors.toMap(a -> a.ID, a -> a.OBJECTS);
}
class MyWrapper {
public final String ID;
public final List<String> OBJECTS;
public MyWrapper(String id, List<String> objects) {
ID = id;
OBJECTS = objects;
}
}
我不知道如何在 Collectors 函数中访问 id,因为列表与 id 没有可获取的关系,因此我创建了一个包装类来存储这两个值。关于在没有包装器的情况下做到这一点的任何想法?谢谢
【问题讨论】:
标签: java java-stream collectors