java使用流对数据进行groupby
时间: 2024-05-15 15:10:56 浏览: 102
java8实战:使用流收集数据之toList、joining、groupBy(多字段分组)
在Java中使用流对数据进行groupby,可以使用Collectors.groupingBy()方法来实现。这个方法可以根据指定的属性对数据进行分组,返回一个Map对象,其中键是属性值,值是对应的数据列表。
以下是一个示例代码:
```
List<Person> personList = Arrays.asList(
new Person("Tom", 20),
new Person("Jerry", 22),
new Person("Lucy", 20)
);
Map<Integer, List<Person>> groupByAge = personList.stream()
.collect(Collectors.groupingBy(Person::getAge));
System.out.println(groupByAge);
```
上述示例代码中,我们首先定义了一个Person类,其中包含name和age两个属性。然后我们创建了一个包含三个Person对象的列表。
接着,我们使用stream()方法将列表转换成流,使用Collectors.groupingBy()方法对数据进行分组。在这里,我们根据Person对象的age属性进行分组。最终,我们得到了一个以年龄为键,以对应Person对象列表为值的Map对象。
阅读全文