stream流按照字段分组
时间: 2023-10-18 09:06:52 浏览: 77
Java Stream 流实现合并操作示例
5星 · 资源好评率100%
要按照字段分组,可以使用Java 8中的Collectors.groupingBy()方法。此方法接受一个Function参数,用于指定按照哪个字段进行分组。以下是一个示例代码:
```java
List<Person> persons = Arrays.asList(
new Person("Alice", 20),
new Person("Bob", 25),
new Person("Charlie", 30),
new Person("Alice", 35)
);
Map<String, List<Person>> personsByNames = persons.stream()
.collect(Collectors.groupingBy(Person::getName));
System.out.println(personsByNames);
```
上述代码将Person对象按照名称字段进行分组,并将结果存储在一个Map<String, List<Person>>中。输出结果如下:
```
{Alice=[Person{name='Alice', age=20}, Person{name='Alice', age=35}], Bob=[Person{name='Bob', age=25}], Charlie=[Person{name='Charlie', age=30}]}
```
可以看到,同名的Person对象被分组在一起,存储在List中。
阅读全文