朱杰兵blog

          jonhney'blog
          posts - 140, comments - 1, trackbacks - 0, articles - 0

          用map集合去重匯總

          Posted on 2015-04-16 15:22 朱杰兵 閱讀(3078) 評論(0)  編輯  收藏
          List<UserOutPlanItem> itemList = info.getItemList();//需要去重匯總的list
                  
                  List<UserOutAuditDTO> summary = new ArrayList<UserOutAuditDTO>();;
                 
                   //匯總到的map value為總數量和總重量
                  Map<String, String> map = new HashMap<String, String>();

                  if (ObjectUtils.notEmpty(itemList))
                  {
                      for (UserOutPlanItem item : itemList)
                      {
                          //這六個字段相同則匯成一條,并且把重量和數量累加
                          String key = item.getBreedName()+"_"+item.getSpecName()+"_"+
                                  item.getMaterialName()+"_"+item.getFactoryName()+"_"+
                                  item.getNumUtil()+"_"+item.getWeightUtil();

                          String num_weight = map.get(key);
                          //當鍵不存在的時候匯一條
                          if (StringUtils.isNull(num_weight))
                          {
                              map.put(key, item.getNum()+"_"+item.getWeight());
                          }
                          //當key已經存在了,則累加
                          else
                          {
                              String[] arr = num_weight.split("_");
                              String thisNum = MoneyCalculateUtils.add(arr[0], item.getNum(), 0);
                              String thisWeight = MoneyCalculateUtils.add(arr[1], item.getWeight(), 4);
                              map.put(key, thisNum + "_" + thisWeight);
                          }
                      }
                  }

                  //重新解析map,把數據封裝到summary
                  if (ObjectUtils.notEmpty(map))
                  {
                      Set<String> ketSet = map.keySet();
                      for (String str : ketSet)
                      {
                          String arr[] = str.split("_");
                          UserOutAuditDTO dto = new UserOutAuditDTO();
                          dto.setBreedName(arr[0]);
                          dto.setSpec(arr[1]);
                          dto.setMaterial(arr[2]);
                          dto.setFactory(arr[3]);
                          dto.setNumUtil(arr[4]);
                          dto.setWeightUtil(arr[5]);
                          
                          String num_weight = map.get(str);
                          String arr2[] = num_weight.split("_");
                          dto.setSumNum(arr2[0]);
                          dto.setSumWeight(arr2[1]);
                          summary.add(dto);
                      }
                  }

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 洪雅县| 密云县| 浦江县| 仁怀市| 房山区| 桑植县| 聂荣县| 涿州市| 景德镇市| 江阴市| 洞口县| 安平县| 辽宁省| 永定县| 马山县| 方城县| 齐河县| 当阳市| 瑞安市| 伊春市| 黑龙江省| 永州市| 荆州市| 抚顺县| 大方县| 来安县| 营山县| 吴旗县| 龙南县| 仲巴县| 温州市| 双流县| 长春市| 罗田县| 洛南县| 石台县| 宁德市| 泰宁县| 渝北区| 六枝特区| 米泉市|