Collectors.groupingBy() 方法是 Java Stream API 中用于分组的收集器。它接收一个 Function 作为参数,用于指定元素分组的条件。然后,它将元素按照这个条件进行分组,并返回一个 Map 对象,其中的键是分组的条件,值是与该条件匹配的元素列表。

例如,假设有一个包含 Person 对象的 List,我们可以使用 Collectors.groupingBy() 方法将这些 Person 对象按照年龄进行分组,代码如下:

List<Person> people = Arrays.asList(
    new Person('Alice', 25),
    new Person('Bob', 30),
    new Person('Charlie', 25),
    new Person('Dave', 30)
);

Map<Integer, List<Person>> peopleByAge = people.stream()
    .collect(Collectors.groupingBy(Person::getAge));

System.out.println(peopleByAge);

输出结果为:

{25=[Person{name='Alice', age=25}, Person{name='Charlie', age=25}], 30=[Person{name='Bob', age=30}, Person{name='Dave', age=30}]}

可以看到,根据年龄进行分组后,年龄为 25 的 Person 对象被分为一组,年龄为 30 的 Person 对象被分为另一组,并且每个分组中的 Person 对象被放入一个 List 中。

Java Stream API 中 Collectors.groupingBy() 方法详解

原文地址: https://www.cveoy.top/t/topic/qvkh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录