Java集合分组方法

文章介绍了在Java中如何使用stream和Collectors.groupingBy对List<实体>进行分组,然后将分组后的数据转换为Map列表。方法一是通过遍历分组后的Map,创建新的Map并添加到rsList中。方法二则是获取分组后的值列表进行处理。作者希望找到更优的方法进行数据处理。
摘要由CSDN通过智能技术生成

Java集合分组方法

List<Map<String, Object>> rsList = new ArrayList<>();
//先查出所需集合
List<实体> result =集合;
//分组,groupingBy后面接多个分组参数,例如:x-> x.getId() +"|" +x.getName()
Map<String, List<实体>> map = result.stream().collect(Collectors.groupingBy(x-> x.根据集合那个字段分组()));

**方法一**

//设置返回值,因为现在分完组的map,无法取值,Key是变量,现在需要对分组后的数据进行再次包装。
//id:变量的key。
for (String id : map.keySet()) {
    Map<String, Object> rsMap = new HashMap<>();
    List<实体> emDeviceConsumes = map.get(id);
    rsMap.put("name", id);
    rsMap.put("listValue", emDeviceConsumes);
    rsList.add(rsMap);
}


**方法二**
// 提取分组后的列表
    List<List<实体>> resultLists = new ArrayList<>(map.values());
    for (List<实体> resultList : resultLists) {
        //数据处理
}

该方法感觉并不是最好,如有更好的方法,请评论交流。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻猴儿

小编,多谢客官留下的赏钱。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值