我遇到groupingBy
收集问题。在我的例子中,列表中的所有元素都具有唯一的addressType
值。我想获得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)));
答案 0 :(得分:6)
自all elements in list have unique addressType value
以来,在这种情况下没有理由使用Collectors.groupingBy
。请改用Collectors.toMap
:
Map<String, Address> collect =
list.stream()
.collect(Collectors.toMap(Address::getAddressType,
Function.identity()));