maps.stream().collect(Collectors.groupingBy(
时间: 2024-08-17 22:01:20 浏览: 49
`Maps.stream().collect(Collectors.groupingBy(...))`是Java中的一个使用示例,涉及到了Java 8引入的Stream API以及Collectors类提供的收集器(Collector),用于对集合进行分组操作。具体来说,这个表达式的作用是将一个Map集合中的元素按照某个指定的分类函数(classifier function)进行分组,并将结果收集到一个新的Map中。
这里是一个简单的使用说明:
1. `Maps.stream()`:这部分将Map转换成一个流(Stream),以便我们可以对Map中的元素进行流式处理。
2. `.collect(Collectors.groupingBy(...))`:这部分是将流中的元素收集起来的操作。`Collectors.groupingBy(...)`是一个收集器,它会根据一个分类函数来对流中的元素进行分组。这个分类函数定义了元素如何分组。分组后的结果会存储在一个新的Map中,其中键是分类函数的返回值,值是具有相同键的所有元素组成的列表。
例如,假设我们有一个学生对象的集合,并且我们想根据学生的班级进行分组,代码可能如下:
```java
Map<String, List<Student>> studentsByClass = students.stream()
.collect(Collectors.groupingBy(Student::getClass));
```
在这个例子中,`Student::getClass`是一个方法引用,它作为分类函数,指定了如何根据学生的班级属性来进行分组。
阅读全文