鱼C论坛

 找回密码
 立即注册
查看: 1978|回复: 0

[技术交流] java list实现group by

[复制链接]
发表于 2018-8-31 13:55:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 865173901 于 2018-8-31 14:00 编辑
package cn.zhangao;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
 
public class ListGroup {
 
    public static void main(String[] args) {
        List<JavaBean> list = new ArrayList<JavaBean>();
        list.add(new JavaBean("来源A", 100));
        list.add(new JavaBean("来源B", 200));
        list.add(new JavaBean("来源C", 300));
        list.add(new JavaBean("来源B", 6600));
        list.add(new JavaBean("来源A", 99800));
 
        List<JavaBean> groupList = getListByGroup(list);
        for (JavaBean bean : groupList) {
            System.out.print(bean.getGroup() + "        ");
            System.out.println(bean.getMoney());
        }
    }
 
    private static List<JavaBean> getListByGroup(List<JavaBean> list) {
        List<JavaBean> result = new ArrayList<JavaBean>();
        Map<String, Integer> map = new HashMap<String, Integer>();
 
        for (JavaBean bean : list) {
            if (map.containsKey(bean.getGroup())) {
                map.put(bean.getGroup(), map.get(bean.getGroup()) + bean.getMoney());
            } else {
                map.put(bean.getGroup(), bean.getMoney());
            }
        }
        for (Entry<String, Integer> entry : map.entrySet()) {
            result.add(new JavaBean(entry.getKey(), entry.getValue()));
        }
        return result;
    }
}
 
class JavaBean {
    private String group;
    private int money;
 
    public JavaBean() {
    }
 
    public JavaBean(String group, int money) {
        this.group = group;
        this.money = money;
    }
 
    public String getGroup() {
        return group;
    }
 
    public void setGroup(String group) {
        this.group = group;
    }
 
    public int getMoney() {
        return money;
    }
 
    public void setMoney(int money) {
        this.money = money;
    }
 
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-7 08:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表