1. 程式人生 > >給List裡新增一欄位並賦值

給List裡新增一欄位並賦值

有這麼個問題,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);