【发布时间】:2018-08-25 01:40:18
【问题描述】:
Map<Long, Optional<Long>> aMap = new HashMap<>();
这个地图有一些键和可选值。
Optional<List<Long>> valuesList = input.aMap().values().stream()
.collect(Collectors.toList());
上述方式有编译错误。如何正确获取可选列表?
【问题讨论】:
-
收集器返回的列表始终不为空。为什么要用
Optional包裹它? -
我认为“valuesList”的数据类型应该是 List
> 而不是 Optional - >。
-
你需要从地图上得到什么???
-
普通的 Collection API 在这种情况下更简单:
List<Optional<Long>> valuesList = new ArrayList<>(input.aMap().values()); -
@Ganga 我不明白您是否需要通过将
Optional<List<Long>>更改为List<Optional<Long>>来修复编译错误,或者您是否确实需要从地图中获取Optional<List<Long>>。请澄清。
标签: list dictionary java-8 optional collectors