.stream()根据三个元素分组
时间: 2023-08-10 12:42:38 浏览: 36
可以使用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元素的值,对应的值是满足这三个元素值的对象列表。