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 实现,数据库什么的就免了,麻烦
各路英雄帮忙做下 展开
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 实现,数据库什么的就免了,麻烦
各路英雄帮忙做下 展开
1个回答
展开全部
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;
}
////////////////////本人水平有限希望能帮助你////////////
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;
}
////////////////////本人水平有限希望能帮助你////////////
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询