java list group by
时间: 2024-05-08 21:11:56 浏览: 82
以下是Java中对List内容进行分组的两种方法:
1. 使用Collectors.groupingBy方法[^1]:
```java
List<Map<String, Object>> list = new ArrayList<>();
// 假设list中的元素为Map类型,每个Map包含"userId"和其他属性
Map<Object, List<Map<String, Object>>> groupedMap = list.stream()
.collect(Collectors.groupingBy(it -> it.get("userId")));
```
这将根据"userId"属性对列表进行分组,并将结果存储在一个Map中,其中键是"userId"的值,值是具有相同"userId"的元素列表。
2. 使用Stream的collect方法结合自定义Collector[^2]:
```java
List<Map<String, Object>> list = new ArrayList<>();
// 假设list中的元素为Map类型,每个Map包含"userId"和其他属性
Map<Object, List<Map<String, Object>>> groupedMap = list.stream()
.collect(Collectors.groupingBy(c -> {
// 自定义分组逻辑
// 返回用于分组的键值
}));
```
在自定义的分组逻辑中,你可以根据需要选择要分组的属性,并返回用于分组的键值。
阅读全文