(1)如果map1中不存在key对应的值,则把map2中对应key的值添加进map1中;
(2)否则,map1中存在的值,和map2中存在的值,进行累加。代码如下所示:
public static void addMapSameKey(Mapmap1, Map map2, String key) { if (map1.get(key) == null) { // 如果map1 中,指定的key值为空的时候,赋值为map2中对应的的key值元素。 map1.put(key, map2.get(key)); } else { // 否则,累加map2中对应的key值元素到map1. BigDecimal d1 = new BigDecimal(map1.get(key).toString()); BigDecimal d2 = new BigDecimal(map2.get(key) == null ? "0" : map2.get(key).toString()); map1.put(key, d1.add(d2)); } }
(3)适用场景
该方法对map的累加进行了抽象,抽象后,可以作为一个基本的累加单元。
(1)map中的keyList分为三类:第一类是忽略的key列表,第二类是拷贝属性的key列表,第三类是除了前两类,数值类型的需要累加的key列表;
(2)对拷贝源的sourceList进行遍历;对每一个拷贝源map,亦进行key的遍历;
(3)进行判断,如果key值在拷贝列表里面,则执行拷贝操作;否则,如果也不在忽略列表里面,则执行累加操作。代码如下所示:
public static copyAddListMap2Map(MapdestMap, List
(4)适用场景
如果在sql中执行了查询后,需要在java后台附加统计汇总信息,则可以使用该方法,完成listMap的统计汇总。统计后,合并listMap和map即可。
(1)list是Map的集合;Map中,又包括有children为key的listMap集合;
(2)对list集合进行遍历;对每一个map,判断该map是否存在children的listMap集合;如果存在,则执行map集合对ListMap的属性拷贝和累加。
(3)需要注意的是,忽略列表和属性拷贝列表。代码如下所示:
public static void copyAddListMapChild2Parent(List
(4)适用场景,java后台中,需要对树形结构进行汇总的情况。
(好记性不如烂笔头。对抗遗忘的最好方式是:在解决问题的时候,记录下遇到的问题和解决的方式,后续遇到相同的问题,只需要翻翻笔记即可。)



