list.stream().collect(Collectors.groupingBy
时间: 2024-06-19 08:01:34 浏览: 207
java8新特性之stream的collect实战教程
5星 · 资源好评率100%
`List.stream().collect(Collectors.groupingBy())` 是 Java 8 中 Stream API 的一个常用方法,用于对列表中的元素进行分组。`Collectors.groupingBy()` 是一个收集器,用于将数据根据指定的键(key)进行分组,通常用于创建一个 Map。
当你调用这个方法时,你需要提供一个函数作为参数,该函数接受列表中的每个元素,并返回一个用于分组的键。例如,如果你有一个 `Person` 对象的列表,你想根据 `Person` 类的一个属性(如年龄、性别等)进行分组,你可以这样做:
```java
List<Person> people = ...; // 假设 Person 类有一个名为 "ageGroup" 的方法返回年龄范围
Map<String, List<Person>> ageGroups = people.stream()
.collect(Collectors.groupingBy(Person::ageGroup));
```
这里,`Person::ageGroup` 是一个方法引用,表示使用 `Person` 类的 `ageGroup` 方法作为键生成器。结果是一个 `Map`,其中键是年龄范围(如 "18-24", "25-30", 等),值是具有相同年龄范围的人的列表。
阅读全文