Java8中Map之merge()方法的功能是什么呢?
下文笔者讲述java中merge()方法的功能简介说明,如下所示
map.merge()方法的功能
用于合并map中key里面的值
如:
map.merge(key,value,(v1,v2) -> v1-v2);
1.key不存在
其效果等同于map.put(key, value)
后面的处理失效,不运行
2.当key存在
value就会变成你处理后的value值。
最终map里面的 value值 = v1-v2;
其中 v2 代表 value
map.merge()方法的使用场景
orderMap.forEach((key,OrderNumVo)->{
orderNumVoMap.merge(key,OrderNumVo,(allData,unpass)->
{
allData.setNum(allData.getNum()-unpass.getNum());
return allData;
});
});
map.merge()方法的测试
public static void main(String[] args) {
Map<String, Integer> map1 = new HashMap<>();
map1.put("a",1);
map1.put("b",2);
map1.put("c",3);
System.out.println(map1);
//key不存在等于是map1.put(key, value),后面的处理失效。
map1.merge("d",4,(v1,v2)->v2+100);
//如果存在就会变成你处理后的value值
map1.merge("a",100,(v1,v2)->v1+v2);
System.out.println(map1);
map1.merge("c",3,Integer::sum);
map1.merge("a",4,(v1,v2)->null);
System.out.println(map1);
}
当key为"d"时
无论后面如何处理
都只会把value值put进去。
当key为"a"时
put进去后面处理后的值。
当处理后的值为null
这个key会被强制移除
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


