lingting1995 于 2015.07.20 15:36 提问

3个回答

danielinbiti      2015.07.20 16:05

`````` class Record{
private String dateStr = "";
private String schoolName = "";
private int money = 0;
public Record(String dateStr,String schoolName,int money){
this.dateStr = dateStr;
this.schoolName = schoolName;
this.money = money;
}
public String getYear() {
return dateStr.split("-")[0];
}
public String getSchoolName() {
return schoolName;
}
public int getMoney() {
return money;
}

}
public class Test {
public List<Record> init(){
List<Record> list = new ArrayList();
return list;
}
public HashMap<String,HashMap<String,Integer>> tongJi(List<Record> list){
HashMap<String,HashMap<String,Integer>> rstMap = new HashMap();
for(int i=0;i<list.size();i++){
Record rd = list.get(i);
if(rstMap.get(rd.getYear())==null){
rstMap.put(rd.getYear(),new HashMap());
}
HashMap<String,Integer> schoolMap= rstMap.get(rd.getYear());
if(schoolMap.get(rd.getSchoolName())==null){
schoolMap.put(rd.getSchoolName(),0);
}
Integer value = schoolMap.get(rd.getSchoolName());
value = value + rd.getMoney();
schoolMap.put(rd.getSchoolName(),value);
}
return rstMap;
}
public void print(HashMap<String,HashMap<String,Integer>> rstMap){
Iterator  iter1 = rstMap.keySet().iterator();
while(iter1.hasNext()){
String year = (String)iter1.next();
HashMap<String,Integer> schoolMap= rstMap.get(year);
Iterator iter2 = schoolMap.keySet().iterator();
while(iter2.hasNext()){
String schoolName = (String)iter2.next();
int value = schoolMap.get(schoolName);
System.out.println("year="+year+",school="+schoolName + ",金额="+value);
}
}
}

/**
* @param args
*/
public static void main(String[] args) {
Test t = new  Test();
List<Record> list = t.init();
HashMap map = t.tongJi(list);//统计
t.print(map);
}

}
``````
danielinbiti 回复lingting1995: 如果有帮助，有时间顺手采纳一下吧
2 年多之前 回复
lingting1995 很感谢，有这个平台真好！
2 年多之前 回复
lingting1995 很感谢，有这个平台真好！
2 年多之前 回复
danielinbiti      2015.07.20 15:38
`````` select sum(资产金额) from 表 group by 学校名称,年份(日期取年，数据库都有对应的函数)
``````
lingting1995 回复danielinbiti: 嗯嗯
2 年多之前 回复
danielinbiti 回复lingting1995: 。。。。好吧，那就不是数据库，是list数据吧
2 年多之前 回复
lingting1995 回复danielinbiti: 那个，要怎么从一个List里面取，那些数据好像是存在一个List对象里面的？，谢
2 年多之前 回复
danielinbiti 回复lingting1995: 时间字段 取年，对应数据库都有相应的函数
2 年多之前 回复
lingting1995 谢谢，那个日期取年！！！
2 年多之前 回复
notfindjob   2015.07.25 17:58

sql中的sum(字段名)就能实现这个功能