IConcurrentMap.IMap.ComputeIfAbsent(Object, IFunction) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
若指定鍵尚未與某值相關聯(或映射為空值),則嘗試使用該映射函數計算該值,並輸入該映射,除非為空值。
[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
映射函數用來計算一個值
傳回
與指定鍵相關的當前(現有或計算)值,若計算值為空值則為空值
實作
- 屬性
備註
若指定鍵尚未與某值相關聯(或映射為空值),則嘗試使用該映射函數計算該值,並輸入該映射,除非為空值。 若映射函數回傳為空,則不會記錄映射。 如果映射函式本身拋出(未勾選的)例外,該例外會被重新拋出,且不會記錄映射。
新增於1.8版本。
最常見的用法是構造一個新的物件,作為初始映射值或備忘錄結果,例如:
map.computeIfAbsent(key, k -> new Value(f(k)));
或者實作多值映射,Map<K,集合<V>>,支援每個鍵數多個值:
map.computeIfAbsent(key, k -> new HashSet<V>()).add(v);
映射函數在計算過程中不應修改此映射。
Java 參考 java.util.concurrent.ConcurrentMap.computeIfAbsent。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。