【发布时间】:2020-09-04 14:36:00
【问题描述】:
我有一段这样的代码:
public Map<String, Details> getAllDetails(final String name) {
Optional<List<JobExecution>> allJobExecutionsByName = Optional.ofNullable(jobExecutionDao.getAllJobExecutionsByName(name));
// return allJobExecutionsByName.map(x -> x.stream()
// .map(execution -> Pair.of(getJobParam(execution, "id"), getDetailsFromExecution(execution)))
// .collect(toList()))
// .orElse(emptyList());
}
我不想返回List<Pair<String, Details>>,而是想返回Map<String, Details>
如何将Optional<List<JobExecution>> 转换为键为id 且值为Detail 对象的映射?
【问题讨论】:
-
你试过映射它吗?使用 lambda 你可以做 .map(element -> element.getField,getOtherfield)
-
我只使用列表,但不确定使用可选列表的效果
-
我正在查看您注释掉的代码。我想这就是你对 List 所做的吗?我想你可以寻找一个 Collect(toMap()) 选项。或者你可以把它当作一个列表,然后把这个列表变成一张地图?
标签: java java-stream optional