2 回答
TA贡献1798条经验 获得超3个赞
Map< String, Set<String>> map = list.stream()
.collect(
Collectors.groupingBy(
A::getFirstName, Collectors.mapping(
A::getLastName, Collectors.toSet())));
您走在正确的轨道上,您需要使用:
Collectors.groupingBy
按 进行分组firstName
。然后使用下游收集器作为 的
Collectors.mappping
第二个参数Collectors.groupingBy
来映射到lastName
.然后最后
Set<String>
通过调用将其收集到 a 中Collectors.toSet
:
TA贡献1829条经验 获得超9个赞
你从来没有告诉收集者提取姓氏。
我想你需要类似的东西
list.stream
.collect(groupingBy(
A::getFirstName, // The key is extracted.
mapping( // Map the stream of grouped values.
A::getLastName, // Extract last names.
toSet() // Collect them into a set.
)));
添加回答
举报