java 对list中其中一个字段分组
时间: 2024-05-16 16:16:30 浏览: 101
可以使用 Java 8 的 Stream API 来对 List 中的某个字段进行分组。假设 List 中的元素是一个类对象,其中包含一个字段为 fieldToGroupBy,可以使用下面的代码来进行分组:
```
Map<String, List<YourObject>> groupedMap = yourList.stream()
.collect(Collectors.groupingBy(YourObject::getFieldToGroupBy));
```
其中,YourObject 是 List 中的元素类型,getFieldToGroupBy 是要进行分组的字段。groupedMap 是分组结果,它是一个 Map 类型,其中键为分组的值,值为对应的 List。
如果要对多个字段进行分组,可以使用 Collectors.groupingBy() 方法的重载版本,在第一个参数中传入一个 Function,该函数返回一个包含多个字段值的对象,然后按照这个对象进行分组。例如:
```
Map<YourGroupingObject, List<YourObject>> groupedMap = yourList.stream()
.collect(Collectors.groupingBy(o -> new YourGroupingObject(o.getField1(), o.getField2())));
```
其中,YourGroupingObject 是一个包含多个字段值的对象,getField1 和 getField2 是要分组的字段。
阅读全文