2 回答

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
Map< String, Set<String>> map = list.stream()
.collect(
Collectors.groupingBy(
A::getFirstName, Collectors.mapping(
A::getLastName, Collectors.toSet())));
您走在正確的軌道上,您需要使用:
Collectors.groupingBy
按 進(jìn)行分組firstName
。然后使用下游收集器作為 的
Collectors.mappping
第二個(gè)參數(shù)Collectors.groupingBy
來映射到lastName
.然后最后
Set<String>
通過調(diào)用將其收集到 a 中Collectors.toSet
:

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊
你從來沒有告訴收集者提取姓氏。
我想你需要類似的東西
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.
)));
添加回答
舉報(bào)