java lambda groupingby 结果的value为对象的一个属性
需求如下:
将List<Person> 按照id分组,并取name为分组的结果。即结果应该为Map<id,List<Sting>>,而 不是Map<id,List<Person>>
实体如下
@Data
public class Person{
private Long id;
private String name;
}
实现如下:
Map<Long,List<Stirng>> nameListMap = personList.stream()
.collect(Collectors.groupingBy(Person::getId,
Collectors.mapping(Person::getName(), Collectors.toList())));