java se 实现 group by操作

以下代码:Listl=..MaptestRMB1,testRMB2,testUSD=....testRMB1.put("CCY","RMB");testRMB1.put(... 以下代码 :
List l = ..
Map testRMB1 ,testRMB2,testUSD = ....

testRMB1.put("CCY","RMB");
testRMB1.put("FUND","100");

testUSD1.put("CCY","USD");
testUSD1.put("FUND","100");

testRMB2.put("CCY","RMB");
testRMB2.put("FUND","150");

l.add(testRMB1);
l.add(testRMB2);
l.add(testUSD1);

List returnL = groupBy(l);

//groupBy 签名
public List groupBy(List l);

returnL的内容:
{{CCY=RMB,FUND=250},{CCY=USD,FUND=100}}

最近发烧了...还要加班...不想动脑了,要求用java se 实现,数据库什么的就免了,麻烦
各路英雄帮忙做下
展开
 我来答
wl89119221
推荐于2016-09-04 · TA获得超过2796个赞
知道小有建树答主
回答量:326
采纳率:0%
帮助的人:170万
展开全部
private List groupBy(List l) {
HashMap temp=null;
int sum=0;//用来计算累计的fund
for (int i = 0; i <l.size(); i++) {
temp=(HashMap)l.get(i);
sum=0;
for(int j=i+1;j<l.size();j++){

if(((HashMap)l.get(i)).get("CCY").equals(((HashMap)l.get(j)).get("CCY"))){//分类统计
if(sum==0){

sum=Integer.parseInt(((HashMap)l.get(j)).get("FUND").toString());//取对比的第一次币种一样的fund
}
else{
sum+=Integer.parseInt(((HashMap)l.get(j)).get("FUND").toString());//累计fund
}
l.remove(j);
}

}
sum+=Integer.parseInt(((HashMap)l.get(i)).get("FUND").toString());//最后把原始的fund加上
((HashMap)l.get(i)).put("FUND", sum);

}
return l;
}
////////////////////本人水平有限希望能帮助你////////////
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式