java使用stream流分组
时间: 2023-09-22 19:11:21 浏览: 103
Java中使用Stream流分组可以使用Collectors.groupingBy方法。该方法接受一个Function作为参数,用于对Stream中的元素进行分组。以下是一个示例代码:
假设有一个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;
}
}
```
现在有一个List<Person>,我们需要按照年龄进行分组:
```java
List<Person> persons = new ArrayList<>();
persons.add(new Person("Alice", 20));
persons.add(new Person("Bob", 30));
persons.add(new Person("Charlie", 20));
persons.add(new Person("Dave", 30));
Map<Integer, List<Person>> groupByAge = persons.stream()
.collect(Collectors.groupingBy(Person::getAge));
```
上述代码中,使用Stream的collect方法,传入Collectors.groupingBy方法,将Person实例按照age属性进行分组。最终结果是一个Map<Integer, List<Person>>,其中key为年龄,value为该年龄对应的Person列表。
阅读全文