Java简单实现Group By分组

  • 项目中用mybatis-plus写的SQL语句就可以实现group by分组效果,但是有时候会发现比较繁琐,所以就获取到所有数据后,用代码实现group by
public List<Amount> getListByGroup(List<Amount> list) {
        List<Amount> result = new ArrayList<Amount>();
        Map<String, Double> map = new HashMap<String, Double>();

        for (Amount amount : list) {
            if (map.containsKey(amount.getSwName())) {
                map.put(amount.getSwName(), map.get(amount.getSwName()) + amount.getAmount());
            } else {
                map.put(amount.getSwName(), amount.getAmount());
            }
        }
        for (Entry<String, Double> entry : map.entrySet()) {
            result.add(new Amount(entry.getKey(), entry.getValue()));
        }
        return result;
    }
  • 实现思路:利用Map将第一个数据存入,然后第二个开始与已有Map的Key进行比较,遇到相同Key就将Value存入Key相加,最后返回Map即可。核心写法就是如此,剩余的业务代码请自行根据实际情况实现
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基础篇 1.ES为什么查询效率快 传统的数据库采用的B+数索引,ES中为所有字段默认都建了倒排索引 2.设计模式 ...
    磨陀货_阅读 1,087评论 0 2
  • 背景 最近应项目需求,需要考虑实现一个网络爬虫的功能,去爬取各个网站的稿件内容,统计其点赞数,转发数,评论数等内容...
    飞鹰雪玉阅读 965评论 0 0
  • 1.JavaSE 1.1 Java帝国的诞生 1)C&C++①1972年C诞生:贴近硬件,运行极快,效率极高操作系...
    Ping开源阅读 3,007评论 3 14
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,144评论 0 4
  • 公元:2019年11月28日19时42分农历:二零一九年 十一月 初三日 戌时干支:己亥乙亥己巳甲戌当月节气:立冬...
    石放阅读 6,953评论 0 2