有这么个问题,oracle查出来数据如下:
ID NAME DAY
001 路径1 28
002 路径2 26
003 路径3 29
004 路径4 24
... ... ...
现想在 这个 List李加入一个字段并赋值
ID NAME DAY AVGDAY
001 路径1 28 26.75
002 路径2 26 26.75
003 路径3 29 26.75
004 路径4 24 26.75
... ... ... ...
这个结果不能在sql里处理,只能用java程序,现平均值已经算出来了,怎么往list里的每行数据里加入这个字段并赋值?
答案:
如果list放的是对象,那对象就要加一个AVGDAY变量,和相应get,set方法。
如果是List里放Map那相对容易一些。
循环List,将里面的每一个Map,put进AVGDAY的值。
类似 List<Map> list =new ArrayList<Map>();//当然这里list是你从数据库中查询出的集合。
for(Map map : List){
map.put("AVGDAY", 26.75);
}
实际例子 :
Map map = new HashMap();
map.put("FORGID", forgid);
map.put("FRCODE", frcode);
map.put("PATHID", pathid);
if(type!=null && !"".equals(type)){
map.put("TYPE", type);
}
List<Map> pgdyList = getPathWHImpl().getPgdyList(map);
System.out.print(pgdyList.size());
System.out.println("\r");
int i = 0;
int j = 0;
int sum = 0; //总和
int avg = 0; //平均值
while(i < pgdyList.size()){
sum += Convert.toInteger(((HashMap)pgdyList.get(i)).get("PGBH").toString());
i++;
}
avg = sum/pgdyList.size();
/**
* 循环将平均值放入查询结果中
List<Map> list = new ArrayList<Map>();//当然这里list是你从数据库中查询出的集合。
*/
for(Map map1 : pgdyList){
map1.put("AVGDAY", avg);
}
modelAndView.addObject("pgdyList", pgdyList);