stream流对象分组
时间: 2023-11-08 21:18:29 浏览: 249
stream流对象分组是一种将对象按照特定属性进行分类和分组的操作。在Java中,可以通过使用Stream API中的groupingBy方法来实现对象的分组。该方法接受一个分类函数作为参数,将对象按照分类函数的返回值进行分组。
例如,可以使用groupingBy方法按照用户的性别将用户对象进行分组,代码如下所示:
Map<String, List<User>> sexAndUserMap = users.stream()
.collect(Collectors.groupingBy(User::getSex));
上述代码将用户对象按照性别进行分组,将同一性别的用户对象放入一个List中,并将性别作为键值对的键。可以根据实际需求进行更改,例如可以按照不同的属性进行多级分组,或者将分组结果统计为其他形式的数据结构。
另外,还可以使用groupingBy方法结合其他收集器来进行更复杂的分组操作。例如,可以使用mapping方法将分组结果中的某个属性提取出来,并以Set的形式进行统计。代码示例如下:
Map<String, Set<String>> sexAndNameSetMap = users.stream()
.collect(Collectors.groupingBy(User::getSex, Collectors.mapping(User::getName, Collectors.toSet())));
上述代码将用户对象按照性别进行分组,并将每个分组下的用户名称提取出来,统计为一个Set集合。
综上所述,stream流对象分组是一种灵活的操作,可以根据业务需求对对象进行分类和分组,并可以对分组结果进行进一步的统计和处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Stream流分组](https://blog.csdn.net/a742128486/article/details/123718852)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文