IConcurrentMap.IMap.ComputeIfAbsent(Object, IFunction) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
如果指定的键尚未与值(或映射到 null)相关联,则尝试使用给定的映射函数计算其值,并将其输入到此映射中,除非为 null。
[Android.Runtime.Register("computeIfAbsent", "(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;", "GetComputeIfAbsent_Ljava_lang_Object_Ljava_util_function_Function_Handler:Java.Util.Concurrent.IConcurrentMap, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=24)]
override sealed Java.Lang.Object? IMap.ComputeIfAbsent(Java.Lang.Object? key, Java.Util.Functions.IFunction? mappingFunction);
[<Android.Runtime.Register("computeIfAbsent", "(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;", "GetComputeIfAbsent_Ljava_lang_Object_Ljava_util_function_Function_Handler:Java.Util.Concurrent.IConcurrentMap, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=24)>]
abstract member Java.Util.IMap.ComputeIfAbsent : Java.Lang.Object * Java.Util.Functions.IFunction -> Java.Lang.Object
override this.Java.Util.IMap.ComputeIfAbsent : Java.Lang.Object * Java.Util.Functions.IFunction -> Java.Lang.Object
参数
- key
- Object
要与其关联的指定值的键
- mappingFunction
- IFunction
用于计算值的映射函数
返回
与指定键关联的当前(现有或计算)值;如果计算值为 null,则为 null
实现
- 属性
注解
如果指定的键尚未与值(或映射到 null)相关联,则尝试使用给定的映射函数计算其值,并将其输入到此映射中,除非为 null。 如果映射函数返回 null,则不会记录任何映射。 如果映射函数本身引发(未选中)异常,则会重新引发异常,并且不会记录任何映射。
已在 1.8 中添加。
最常见的用法是构造一个新对象,用作初始映射值或备忘录化结果,如下所示:
map.computeIfAbsent(key, k -> new Value(f(k)));
或者实现多值映射,映射<K,集合<V>>,支持每个键的多个值:
map.computeIfAbsent(key, k -> new HashSet<V>()).add(v);
在计算期间,映射函数不应修改此映射。
Java参考java.util.concurrent.ConcurrentMap.computeIfAbsent。
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。