java list 分组_Java 将List中的实体类按照某个字段进行分组并存
时间: 2023-12-14 18:36:06 浏览: 83
可以使用Java 8的Stream API来实现:
假设有一个实体类Person,其中包含属性name和age,现在要按照age字段进行分组:
```java
public class Person {
private String name;
private int age;
// 省略构造方法和getter/setter方法
}
```
```java
List<Person> personList = new ArrayList<>();
// 添加Person对象到personList中
Map<Integer, List<Person>> groupByAgeMap = personList.stream()
.collect(Collectors.groupingBy(Person::getAge));
```
上述代码中,使用Collectors.groupingBy方法将Person对象按照age字段分组,并将结果存放在Map<Integer, List<Person>>类型的groupByAgeMap中。其中,Person::getAge表示按照Person对象的age字段进行分组。
如果想要进一步对分组结果进行处理,可以使用Map的forEach方法:
```java
groupByAgeMap.forEach((age, persons) -> {
System.out.println("Age " + age + ":");
persons.forEach(person -> System.out.println(person.getName()));
});
```
上述代码中,使用Map的forEach方法遍历groupByAgeMap中的每一个元素,对于每一个元素,输出其age字段和对应的Person对象的name字段。
阅读全文
相关推荐












