.stream()根据三个元素分组
时间: 2023-08-10 22:42:38 浏览: 37
可以使用Java 8中的Stream API和Collectors.groupingBy()方法实现根据三个元素进行分组。假设有一个包含三个元素的对象列表,可以按照其中的三个元素进行分组,示例代码如下:
```
List<MyObject> list = ...
Map<String, Map<String, Map<String, List<MyObject>>>> result = list.stream()
.collect(Collectors.groupingBy(MyObject::getField1,
Collectors.groupingBy(MyObject::getField2,
Collectors.groupingBy(MyObject::getField3))));
```
上述代码中,MyObject是包含三个元素的对象,getField1、getField2和getField3分别是三个元素的getter方法。使用Collectors.groupingBy()方法,首先按照getField1元素进行分组,然后在每个分组中再按照getField2元素进行分组,最后在每个分组中再按照getField3元素进行分组,最终得到一个Map<String, Map<String, Map<String, List<MyObject>>>>类型的结果,其中外层的Map的键是getField1元素的值,中间的Map的键是getField2元素的值,内层的Map的键是getField3元素的值,对应的值是满足这三个元素值的对象列表。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)