Share via


IMap.ComputeIfAbsent(Object, IFunction) メソッド

定義

指定したキーがまだ値に関連付けられていない (または に 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.IMap, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=24)]
public virtual Java.Lang.Object? 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.IMap, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=24)>]
abstract member ComputeIfAbsent : Java.Lang.Object * Java.Util.Functions.IFunction -> Java.Lang.Object
override this.ComputeIfAbsent : Java.Lang.Object * Java.Util.Functions.IFunction -> Java.Lang.Object

パラメーター

key
Object

指定した値を関連付けるキー

mappingFunction
IFunction

値を計算するマッピング関数

戻り値

指定したキーに関連付けられている現在の (既存または計算済みの) 値。計算値が null の場合は null

属性

注釈

指定したキーがまだ値に関連付けられていない (または に nullマップされている) 場合は、指定されたマッピング関数を使用してその値の計算を試み、を除いて nullこのマップに入力します。

マッピング関数が を返す null場合、マッピングは記録されません。 マッピング関数自体が (オフの) 例外をスローした場合、例外は再スローされ、マッピングは記録されません。 最も一般的な使用方法は、次のように、初期マップ値またはメモ化された結果として機能する新しいオブジェクトを構築することです。

{@code
            map.computeIfAbsent(key, k -> new Value(f(k)));
            }

または、キーごとに複数の値をサポートする複数値マップ を実装するには、 Map<K,Collection<V>>次のようにします。

{@code
            map.computeIfAbsent(key, k -> new HashSet<V>()).add(v);
            }

マッピング関数は、計算中にこのマップを変更しないでください。

1.8 で追加されました。

の Java ドキュメント java.util.Map.computeIfAbsent(K, java.util.function.Function<? super K, ? extends V>)

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象