我正在寻求帮助将对象列表转换为 Map<String, List<String>> .

class Person {    
    private String name;     
    private int age; 
} 

我有一个 List<Person>我想收集 Map<int, List<String>>键是年龄,值是同龄人的名字列表。

我试过这些行,但没有成功

persons.stream().collect(Collectors.groupingBy(p -> p.getAge()), ); 

请您参考如下方法:

使用 groupingBy 的重载它接受下游收集器:

Map<Integer, List<String>> map = persons.stream() 
        .collect(Collectors.groupingBy(Person::getAge, 
                Collectors.mapping(Person::getName, Collectors.toList()))); 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!