您的位置:首页 > 新闻 > 热点要闻 > 一张数据表中需要多个字段作为分组条件,进行归类整理,存储在Map中,如何实现?

一张数据表中需要多个字段作为分组条件,进行归类整理,存储在Map中,如何实现?

2024/10/31 11:15:10 来源:https://blog.csdn.net/qq_48592827/article/details/141820707  浏览:    关键词:一张数据表中需要多个字段作为分组条件,进行归类整理,存储在Map中,如何实现?

需求说明

一张数据表中需要多个字段作为分组条件,进行归类整理,存储在Map中,如何实现?

实现逻辑

假设:表名为my_table,两个字段分别为codetype

第一步:获取table中的所有数据

List\<MyTableEntity\> myTableList = MyTableMapper.list();

补充说明:MyTableEntity是数据库表对应的实体类

第二步:根据codetypemy_table中的数据进行归类整理

  Map<String, List<MyTableEntity>> codeAndTypeGroup = myTableList.stream().collect(Collectors.groupingBy(item-> item.getCode()+ "+" + StringUtils.defaultIfBlank(item.getType(), "")));

补充说明:
1.使用stream()方法将这个集合转化为一个流;
2.collect方法用于收集流中的元素,并通过Collectors.groupingBy来进行分组操作;
3.分组的键是通过getCode()getType()代码拼接而成的字符串,如果getType()为空,则用空字符串""代替(按实际需求而定)。
4.分组后的结果存储在一个 Map<String, List<MyTableEntity>>类型的变量codeAndTypeGroup中,其中键是拼接的字符串,值是一个列表,列表中存放的是具有相同键的所有MyTableEntity对象。


总结:这段代码的目的是根据指定字段对表中数据进行归类整理,无论几个字段作为分组条件都能使用这个方式实现。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com