• java中list集合的内容,如何使用像数据库中group by形式那样排序


    java中list集合的内容,如何使用像数据库中group by形式那样排序,比如:
    有一个 List<JavaBean> 他中包含了一些如下的内容
    JavaBean:
    name    money
    (名称)  (金额)

    来源A   100
    来源B   200
    来源C   300
    来源B   6600
    来源A   99800
    <数据1>

    最后想实现的是:如果假设这些数据在数据库中,那么通过 select name,sum(money) from Table group by name 该语句得到的List<JavaBean>
    来源A  99900
    来源B  6800
    来源C  300
    <数据2>

    简单的说就是让集合从 <数据1>的形式 变为 <数据2>的形式

    请高手帮忙哦。谢谢了!


    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; } }
  • 相关阅读:
    JVM学习笔记(三)------内存管理和垃圾回收【转】
    JVM学习笔记(二)------Java代码编译和执行的整个过程【转】
    JVM学习笔记(一)------基本结构【转】
    Java程序编译和运行的过程【转】
    linux C判断文件是否存在【转】
    Java编译那些事儿【转】
    CTSC1999补丁VS错误题解
    ASP.NET MVC学前篇之Ninject的初步了解
    setSingleChoiceItems和setPositiveButton两者触发时期
    B. Sereja and Mirroring
  • 原文地址:https://www.cnblogs.com/donaldlee2008/p/5277894.html
Copyright © 2020-2023  润新知