【发布时间】:2015-03-20 05:35:31
【问题描述】:
使用Collectors.groupingBy() 我可以轻松获得Map<Department, List<Person>> - 这为我提供了属于Department 一部分的所有Person 对象:
allPersons.stream().collect(Collectors.groupingBy(Person::getDepartment));
现在我想转换生成的“multimap”,使其包含所有 Persons 的名称,而不是 Person 对象。
实现此目的的一种方法是:
final Map<Department, List<String>> newMap = new HashMap<>();
personsByDepartmentMap.stream
.forEach((d, lp) -> newMap.put(
d, lp.stream().map(Person::getName).collect(Collectors.toList())));
有没有办法在不使用newMap 对象的情况下实现这一点?
类似的东西
final Map<Department, List<String>> newMap =
personsByDepartmentMap.stream().someBigMagic();
【问题讨论】:
标签: dictionary collections java-8 java-stream