Java:java.util.Map compute用法(compute,computeIfAbsent,computeIfPresent)

java.util.Map compute用于计算指定键映射的值(如果键没有映射时,值为null)。应用场景,向Map的键映射的字符串后连接新的字符串。

map.compute(key, (k, v) -> (v == null) ? msg : v.concat(msg))

如果函数返回空值,则移除映射(如果最初不存在映射,则保持不存在)。

如果函数本身抛出异常,则该异常将被重新引发,并且当前映射保持不变。

compute提供了3个方法

方法 场景
compute 无论是否有值,BiFunction一定会执行
computeIfPresent

如果指定键的值存在且不为空,则尝试计算给定键及其当前映射值的新映射。

PS:如果指定键不存在BiFunction不会被执行

computeIfAbsent

如果指定的键尚未与值关联(或映射为空),则尝试使用给定的映射函数计算其值,并将其输入此映射,除非为空。

PS:如果指定键存在值,则不会被执行

 

你可能感兴趣的:(Java,java)