去重算法
logger.info("fetchData end, eids.length={}, eids={}", eids.length, eids);//復(fù)雜的去重處理,先把相同的數(shù)據(jù)統(tǒng)一起來,最后在取相同數(shù)據(jù)中最大的EID數(shù)據(jù)long [] a = new long[eids.length];List<HashMap<String,Object>> list = new ArrayList<HashMap<String,Object>>();List<String> companyCodeList = new ArrayList<String>();//添加COMPANYCODEfor (long eid : eids) {DataRow zbyzInfo = dao.queryZBYZInfo(eid); if(zbyzInfo!=null && zbyzInfo.size()>0) {Date noticeDate = (Date) zbyzInfo.get("NOTICEDATE");//公告日期String COMPANYCODE= zbyzInfo.getString("COMPANYCODE");//公司代碼String DESCRIPTION = zbyzInfo.getString("DESCRIPTION").toString();//內(nèi)容//先保存所有的數(shù)據(jù)HashMap<String,Object> map = new HashMap<String,Object>();map.put("eid", eid);map.put("noticeDate", noticeDate);map.put("COMPANYCODE", COMPANYCODE);map.put("DESCRIPTION", DESCRIPTION);companyCodeList.add(COMPANYCODE);list.add(map);}}if(companyCodeList.size() > 0 && list.size() > 0){Map<String,ArrayList<HashMap<String, Object>>> map2 = new HashMap<String,ArrayList<HashMap<String,Object>>>();for (String companyCode : companyCodeList) {ArrayList<HashMap<String, Object>> list2 = new ArrayList<HashMap<String,Object>>();//根據(jù)公司代碼遍歷所有的數(shù)據(jù)來分類for (HashMap<String, Object> map : list) {if(map.containsKey(companyCode)){//存在list2.add(map);}}map2.put(companyCode, list2);}//處理同一公司code的數(shù)據(jù) 最復(fù)雜的地方//1.遍歷mapIterator<Entry<String, ArrayList<HashMap<String, Object>>>> iterator = map2.entrySet().iterator(); while(iterator.hasNext()){Entry<String, ArrayList<HashMap<String, Object>>> entry = iterator.next();ArrayList<HashMap<String,Object>> value = entry.getValue();for (HashMap<String, Object> hashMap : value) {//同一公司 日期相同的篩選}}}//return Arrays.asList(ArrayUtils.toObject(eids));
轉(zhuǎn)載于:https://www.cnblogs.com/liangxi/p/9264699.html
總結(jié)
- 上一篇: 路由器DHCP服务器及PPP封装验证
- 下一篇: Optional 的基本用法