是否覆盖value | 返回值 | |
put | 是 | 覆盖前 |
compute | 是 | 覆盖后 |
putIfAbsent | 否 | 覆盖前 |
computeIfAbsent | 否 | 覆盖后 |
总结:
1. put与compute:
不论key是否存在,强制用value覆盖进去。
区别:put返回旧value或null,compute返回新的value
2. putIfAbsent与computeIfAbsent:
key存在,则不操作,key不存在,则赋值一对新的(key,value)。
区别:putIfAbsent返回旧value或null,computeIfAbsent返回新的value