stream流groupby分组
时间: 2023-08-22 10:04:48 浏览: 124
JAVA8 STREAM COLLECT GROUPBY分组实例解析
stream流的groupby分组是一种在Java中使用Stream API进行分组操作的方法。通过使用Collectors.groupingBy()方法,可以将流中的元素按照指定的条件进行分组,并将结果存储在一个Map中。
例如,如果有一个Person类的列表,可以使用groupingBy()方法按照性别对Person对象进行分组,代码如下所示:
Map<String, List<Person>> group = personList.stream().collect(Collectors.groupingBy(Person::getSex));
这将返回一个Map,其中键是性别,值是具有相同性别的Person对象的列表。可以根据需要修改Person类的属性和分组条件。
另外,还可以使用Collectors.partitioningBy()方法进行分区操作。与分组不同的是,分区是将流中的元素分为两个部分,满足条件的元素放在一个部分,不满足条件的元素放在另一个部分。例如,可以根据工资是否大于8000将Person对象进行分区,代码如下所示:
Map<Boolean, List<Person>> part = personList.stream().collect(Collectors.partitioningBy(x -> x.getSalary() > 8000));
这将返回一个Map,其中键是布尔值(true或false),值是满足条件(工资大于8000)和不满足条件的Person对象的列表。
总结起来,stream流的groupby分组是一种强大的功能,可以根据指定的条件对流中的元素进行分组或分区,并将结果存储在Map中。
#### 引用[.reference_title]
- *1* *2* *3* [Stream流中的groupingBy分组操作](https://blog.csdn.net/weixin_61503139/article/details/126074858)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文