Java Stream API 中 Collectors.groupingBy() 方法详解
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 中。
原文地址: https://www.cveoy.top/t/topic/qvkh 著作权归作者所有。请勿转载和采集!