java中list集合的内容,如何使用像数据库中group by形式那样排序,比如: 有一个 List他中包含了一些如下的内容 JavaBean: name money (名称) (金额) 来源A 100 来源B 200 来源C 300 来源B 6600 来源A 99800 <数据1> 最后想实现的是:如果假设这些数据在数据库中,那么通过 select name,sum(money) from Table group by name 该语句得到的List 来源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 数据1>list = new ArrayList 数据2> 数据1> 数据2>(); 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 groupList = getListByGroup(list); for (JavaBean bean : groupList) { System.out.print(bean.getGroup() + " "); System.out.println(bean.getMoney()); } } private static List getListByGroup(List list) { List result = new ArrayList (); Map map = new HashMap (); 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 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; }}