jdk 的Conllectors.groupingBy
时间: 2024-10-24 08:05:52 浏览: 16
JDK tools.jar
`Collectors.groupingBy`是Java Stream API中的一个实用工具方法,它用于对集合中的元素按照指定键进行分组,并将每个元素映射到一个收集器生成的结果容器中。这个方法通常用于数据聚合,比如创建一个Map,其中键是某个属性值,值是一个列表包含具有该键的所有元素。
其基本语法如下:
```java
List<T> list = ...; // 待操作的列表
Map<K, List<T>> result = list.stream()
.collect(Collectors.groupingBy(Function<T, K>, Collector.Characteristics.IDENTITY_FINISH));
```
这里的`Function<T, K>`是用来提取键的函数,`Collector.Characteristics.IDENTITY_FINISH`表示收集过程中不需要进一步的转换,原始元素会被直接放入结果容器中。
举个例子,如果你有一个学生的列表,你可以通过`groupingBy(Student::getGrade)`来按年级分组,每个年级对应的学生将会放在对应的列表里。
阅读全文