java中groupdy用法
时间: 2024-06-07 17:02:00 浏览: 56
在Java中,groupby是一种将对象列表按照某个属性进行分组的常见操作。通常,我们使用Java 8中的Stream API来实现groupby操作。下面是一个示例代码,演示如何使用Java 8中的Stream API进行groupby操作:
假设我们有一个Person类,其中包含name和age两个属性:
```java
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name; this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
现在,我们有一个Person列表,我们想按照年龄对它们进行分组。我们可以使用Java 8中的Stream API来实现这个操作:
```java
List<Person> people = Arrays.asList(
new Person("John", 20),
new Person("Jane", 30),
new Person("Bob", 20),
new Person("Mary", 25),
new Person("Alice", 25)
);
Map<Integer, List<Person>> result = people.stream()
.collect(Collectors.groupingBy(Person::getAge));
System.out.println(result);
```
在上面的代码中,我们首先创建了一个Person列表。然后,我们使用Stream API的groupingBy方法按照年龄对Person对象进行分组。最后,我们将结果打印出来。
输出结果如下:
```
{20=[Person{name='John', age=20}, Person{name='Bob', age=20}], 25=[Person{name='Mary', age=25}, Person{name='Alice', age=25}], 30=[Person{name='Jane', age=30}]}
```
可以看到,输出结果是一个Map对象,其中键是年龄,值是具有相同年龄的Person对象列表。
阅读全文