【发布时间】:2019-08-17 00:38:35
【问题描述】:
假设我有一个国家对象列表,其中包含该国家/地区使用的语言列表,如下所示:
class Country {
List<String> languages;
}
我想创建以下格式的地图:
Map<String, List<Country>>,这样每种语言都映射到 Country 对象列表。例如:
"French" -> [Country:France, Country:Canada],
"English" -> [Country:UK, Country:US]
性能是这里的一个问题,所以我想避免多次迭代和查找。我已经尝试使用groupingBy,但是我如何flatMap 键集?
例如,这会导致Map<List<String>, List<Country>>:
countries.stream()
.collect(Collectors.groupingBy(country -> country.getLanguages(), toList()));
【问题讨论】:
标签: java java-stream flatmap