我有一个 List<ServiceName> servicesNames
,而 ServiceName 具有以下结构:
public class ServiceName {
private Map<String, String> names;
}
这里的 names
是一个哈希表,包含语言和名称 - 通常有多个值。
我正在尝试获取 Map<String lang, List<String> names>>
- 其中键是语言,值是从 List<ServiceName>
中给定语言的所有名称的列表。
到目前为止,这是我得出的结果,但无法将其组合在一起 - 会出现编译错误:
servicesNames
.stream()
.map(x -> x.getNames())
.flatMap(x -> x.entrySet().stream())
.collect(x -> Collectors.groupingBy());
编辑: 我能够得到这个:
List<Map.Entry<String, String>> collect1 = servicesNames
.stream()
.map(x -> x.getNames())
.flatMap(x -> x.entrySet().stream())
.collect(Collectors.toList());
但是不知道如何在使用flatmap后按键分组所有值...
groupingBy(Entry::getKey)
。 - daniu