首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Java Stream中将POJO列表转换为Map<String、List>?

在Java Stream中将POJO列表转换为Map<String, List>的方法是使用Collectors.groupingBy()方法。该方法接受一个Function参数,用于指定根据哪个属性进行分组,并返回一个Map对象,其中键是属性值,值是该属性值对应的POJO列表。

下面是一个示例代码:

代码语言:txt
复制
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<Person> personList = List.of(
                new Person("Alice", 25),
                new Person("Bob", 30),
                new Person("Alice", 35),
                new Person("Bob", 40)
        );

        Map<String, List<Person>> personMap = personList.stream()
                .collect(Collectors.groupingBy(Person::getName));

        System.out.println(personMap);
    }
}

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

输出结果为:

代码语言:txt
复制
{Alice=[Person{name='Alice', age=25}, Person{name='Alice', age=35}], Bob=[Person{name='Bob', age=30}, Person{name='Bob', age=40}]}

在这个例子中,我们有一个Person类,它有一个name属性和一个age属性。我们将Person对象列表转换为一个Map,其中键是name属性的值,值是具有相同name属性值的Person对象列表。

这个方法在需要按照某个属性值对对象进行分组的场景中非常有用,比如根据城市将用户分组、根据部门将员工分组等。

腾讯云相关产品和产品介绍链接地址:

请注意,以上只是腾讯云的一些相关产品,其他云计算品牌商也提供类似的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券