java list<map> stream流 按多个字段分组
时间: 2023-04-03 20:05:02 浏览: 321
Java8 stream 中利用 groupingBy 进行多字段分组求和案例
5星 · 资源好评率100%
可以使用Java 8中的Stream API,使用Collectors.groupingBy()方法按照多个字段进行分组。例如,假设我们有一个List<Map<String, Object>>,其中每个Map都包含两个字段:name和age。我们想按照这两个字段进行分组,可以使用以下代码:
List<Map<String, Object>> list = new ArrayList<>();
// 假设list中有多个Map对象,每个Map对象都包含name和age两个字段
Map<String, Map<Integer, List<Map<String, Object>>>> result = list.stream()
.collect(Collectors.groupingBy(
m -> m.get("name").toString(),
Collectors.groupingBy(
m -> Integer.parseInt(m.get("age").toString())
)
));
这将返回一个Map对象,其中键是name字段的值,值是另一个Map对象,其中键是age字段的值,值是具有相同name和age值的Map对象的列表。
阅读全文