鱼C论坛

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

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

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

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

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

x
本帖最后由 865173901 于 2018-8-31 14:00 编辑
  1. package cn.zhangao;

  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import java.util.Map.Entry;

  7. public class ListGroup {

  8.     public static void main(String[] args) {
  9.         List<JavaBean> list = new ArrayList<JavaBean>();
  10.         list.add(new JavaBean("来源A", 100));
  11.         list.add(new JavaBean("来源B", 200));
  12.         list.add(new JavaBean("来源C", 300));
  13.         list.add(new JavaBean("来源B", 6600));
  14.         list.add(new JavaBean("来源A", 99800));

  15.         List<JavaBean> groupList = getListByGroup(list);
  16.         for (JavaBean bean : groupList) {
  17.             System.out.print(bean.getGroup() + "        ");
  18.             System.out.println(bean.getMoney());
  19.         }
  20.     }

  21.     private static List<JavaBean> getListByGroup(List<JavaBean> list) {
  22.         List<JavaBean> result = new ArrayList<JavaBean>();
  23.         Map<String, Integer> map = new HashMap<String, Integer>();

  24.         for (JavaBean bean : list) {
  25.             if (map.containsKey(bean.getGroup())) {
  26.                 map.put(bean.getGroup(), map.get(bean.getGroup()) + bean.getMoney());
  27.             } else {
  28.                 map.put(bean.getGroup(), bean.getMoney());
  29.             }
  30.         }
  31.         for (Entry<String, Integer> entry : map.entrySet()) {
  32.             result.add(new JavaBean(entry.getKey(), entry.getValue()));
  33.         }
  34.         return result;
  35.     }
  36. }

  37. class JavaBean {
  38.     private String group;
  39.     private int money;

  40.     public JavaBean() {
  41.     }

  42.     public JavaBean(String group, int money) {
  43.         this.group = group;
  44.         this.money = money;
  45.     }

  46.     public String getGroup() {
  47.         return group;
  48.     }

  49.     public void setGroup(String group) {
  50.         this.group = group;
  51.     }

  52.     public int getMoney() {
  53.         return money;
  54.     }

  55.     public void setMoney(int money) {
  56.         this.money = money;
  57.     }

  58. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-1 20:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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