java list stream group by
时间: 2024-11-07 15:09:57 浏览: 10
JAVA8 STREAM COLLECT GROUPBY分组实例解析
在Java中,`List.stream()` 是一种流(Stream)处理机制,它允许你对集合数据进行高阶函数式操作。`groupingBy()` 方法则是Stream API中的一个功能,用于将列表按照指定键(key)进行分组,返回的是一个 `Map`,其中键是分组的关键值,值是一个包含所有满足条件元素的新列表。
例如,如果你有一个学生列表,每个学生有姓名和分数,你可以这样做:
```java
List<Student> students = ...; // 学生列表
Map<String, List<Student>> groupedStudents = students.stream()
.collect(Collectors.groupingBy(Student::getName)); // 按照姓名分组
// 现在groupedStudents Map里每个键是学生的姓名,对应的值是具有相同姓名的学生列表
```
在这个例子中,`Student::getName` 是一个 Lambda 表达式,它代表获取每个学生姓名的操作。`Collectors.groupingBy()` 方法会根据这个表达式对学生进行分组。
阅读全文