我对 groupingBy
有疑问收集。在我的例子中,列表中的所有元素都有唯一的 addressType
值(value)。我想要一个Map<String, Address>
但是有Map<String, Optional<Address>>
List<Address> list = ....
Map<String, Optional<Address>> collect = list.stream()
.collect(Collectors.groupingBy(Address::getAddressType,
Collectors.reducing((o, o2) -> o)));
最佳答案
因为 列表中的所有元素都有唯一的 addressType 值
,所以在这种情况下没有理由使用 Collectors.groupingBy
。使用 Collectors.toMap
代替:
Map<String, Address> collect =
list.stream()
.collect(Collectors.toMap(Address::getAddressType,
Function.identity()));
关于java - 如何通过减少下游进行分组收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47196322/