java8新特性之put与compute,computeIfAbsent与putIfAbsent区别

1、java8新特性之put与compute,computeIfAbsent与putIfAbsent区别

是否覆盖value	返回值

put 是 覆盖前
compute 是 覆盖后
putIfAbsent 否 覆盖前
computeIfAbsent 否 覆盖后

是否覆盖value 返回值
put 覆盖前
compute 覆盖后
putIfAbsent 覆盖前
computeIfAbsent 覆盖后

总结:

  1. put与compute:

不论key是否存在,强制用value覆盖进去。

区别:put返回旧value或null,compute返回新的value

  1. putIfAbsent与computeIfAbsent:

key存在,则不操作,key不存在,则赋值一对新的(key,value)。
区别:putIfAbsent返回旧value或null,computeIfAbsent返回新的value

发布了352 篇原创文章 · 获赞 2 · 访问量 2113

猜你喜欢

转载自blog.csdn.net/m0_37681589/article/details/103727693