日期:2014-05-17 浏览次数:20768 次
List<Map> list = new ArrayList<Map>(); Map map1 = new HashMap(); map1.put("submitDate", "2011-12-10"); map1.put("scoreValue", 20); Map map2 = new HashMap(); map2.put("submitDate", "2011-12-10"); map2.put("scoreValue", 10); Map map3 = new HashMap(); map3.put("submitDate", "2011-12-11"); map3.put("scoreValue", 11); Map map4 = new HashMap(); map4.put("submitDate", "2011-12-11"); map4.put("scoreValue", 11); Map map5 = new HashMap(); map5.put("submitDate", "2011-12-12"); map5.put("scoreValue", 5); list.add(map1); list.add(map2); list.add(map3); list.add(map4); list.add(map5);
Map<String,List> map = new HashMap<String,List>(); if(map.get(key) == null) { map.put(key , new ArrayList()); } map.get(key).add(value);
------解决方案--------------------
试试看是不是你想要的结果:
List<Map> list = new ArrayList<Map>(); Map map1 = new HashMap(); map1.put("submitDate", "2011-12-10"); map1.put("scoreValue", 20); Map map2 = new HashMap(); map2.put("submitDate", "2011-12-10"); map2.put("scoreValue", 10); Map map3 = new HashMap(); map3.put("submitDate", "2011-12-11"); map3.put("scoreValue", 11); Map map4 = new HashMap(); map4.put("submitDate", "2011-12-11"); map4.put("scoreValue", 11); Map map5 = new HashMap(); map5.put("submitDate", "2011-12-12"); map5.put("scoreValue", 5); list.add(map1); list.add(map2); list.add(map3); list.add(map4); list.add(map5); List<Map> mapList = new ArrayList<Map>(); for (int i = 0; i < list.size(); i++) { Map m1 = list.get(i); mapList.add(list.get(i)); for (int j = 0; j < mapList.size(); j++) { if(i<list.size()-1){ Map m2 = list.get(i+1); Map m3 = mapList.get(j); if(m2.get("submitDate").equals(m3.get("submitDate"))){ m2.put("scoreValue", (Integer)m3.get("scoreValue")+(Integer)m2.get("scoreValue")); mapList.remove(m1); } } } } System.out.println(mapList);
------解决方案--------------------
Map map = new HashMap(); for(int i = 0; i < list.size(); i++){ if(map.get(list.get(i).get("submitDate")) == null){ map.put(list.get(i).get("submitDate"), list.get(i).get("scoreValue")); }else{ map.put(list.get(i).get("submitDate"), map.get(list.get(i).get("submitDate")) + list.get(i).get("scoreValue")); } }
------解决方案--------------