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; } }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM