list集合用流怎么根据2个字段进行分组

动态 未结 0 89
小小草
小小草 LV1 2023年9月23日 23:40 发表
可以使用Java 8的Stream API中的groupingBy方法来根据2个字段进行分组。假设我们有一个List集合,其中包含多个对象,每个对象都有两个属性:name和age。我们想要根据这两个属性进行分组。 代码示例: ``` List personList = new ArrayList<>(); // 假设已经将多个Person对象添加到personList中 Map>> groupedMap = personList.stream() .collect(Collectors.groupingBy(Person::getName, Collectors.groupingBy(Person::getAge))); ``` 上述代码中,我们首先调用了stream()方法将List转换为Stream,然后使用Collectors.groupingBy方法进行分组。第一个参数是按照哪个属性进行分组,第二个参数是按照哪个属性再次进行分组。最终得到的是一个嵌套的Map,第一层Map的key是name,第二层Map的key是age,value是对应的Person对象列表。 需要注意的是,如果我们只需要按照一个属性进行分组,可以直接使用Collectors.groupingBy方法,例如: ``` Map> groupedMap = personList.stream() .collect(Collectors.groupingBy(Person::getName)); ```
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复