stream() group by
时间: 2024-08-14 13:02:44 浏览: 39
日常开发常用stream操作.docx
在Java 8及更高版本中,Stream API是一个强大的工具,用于处理集合数据并提供高效的数据流操作。`stream()`函数是创建一个Stream对象的起点,它将集合转换成一个惰性序列,只有在需要时才会计算。
`groupBy()`方法则是Stream API中的一个聚合操作,它的作用是根据指定键对元素进行分组。这个方法接收一个函数作为参数,该函数会为每个元素生成一个键值。然后,它会返回一个新的Stream,其中包含了原始集合按照键值划分后的各个小组。每个小组内部的元素都是相同的键,可以进一步进行处理,比如映射、过滤或者计数等操作。
例如,如果你有一个Person列表,你可以这样使用:
```java
List<Person> people = ...;
Map<String, List<Person>> groupedPeople = people.stream()
.collect(Collectors.groupingBy(Person::getCountry));
```
这将把people列表按每个人所在的国家进行分组,`groupedPeople`现在就是一个Map,键是国家名,值是包含相应国家人的列表。
阅读全文