Stream两个Map的value值进行相加/相减,并将合并数据集赋值给新Map

时间:2025-03-18 15:14:39
public static void main(String[] args) { Map<String,Integer> map1 = new HashMap<>(); map1.put("1",1); map1.put("2",2); map1.put("3",3); map1.put("4",4); Map<String,Integer> map2 = new HashMap<>(); map2.put("1",1); map2.put("2",2); map2.put("3",3); map2.put("5",5); Map<String,Integer> map3 = new HashMap<>(); map3.put("1",2); map3.put("2",4); map3.put("3",6); map3.put("5",8); //以map2为基准,存放相加value值的数据集 Map<String, Integer> map4 = new HashMap<>(map2); //以map1为基准,存放相减value值的数据集 Map<String, Integer> map5 = new HashMap<>(map1); map1.forEach((key,value)->map4.merge(key,value,(v1,v2)->v1+v2)); System.out.println("原始数据集1: "+map1); System.out.println("原始数据集2: "+map2); System.out.println("原始数据集3: "+map3); System.out.println("存放相加value值的数据集Map: "+map4); map3.forEach((key,value)->map5.merge(key,value,(v1,v2)->v2-v1)); System.out.println("原始数据集1: "+map1); System.out.println("原始数据集2: "+map2); System.out.println("原始数据集3: "+map3); System.out.println("存放相加value值的数据集Map: "+map5); }