IConcurrentMap.IMap.ComputeIfAbsent(Object, IFunction) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Se a chave especificada ainda não estiver associada a um valor (ou for mapeada para nulo), tentará calcular seu valor usando a função de mapeamento fornecida e a inserirá neste mapa, a menos que seja nulo.
[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
Parâmetros
- key
- Object
chave com a qual o valor especificado deve ser associado
- mappingFunction
- IFunction
a função de mapeamento para calcular um valor
Retornos
o valor atual (existente ou computado) associado à chave especificada ou nulo se o valor calculado for nulo
Implementações
- Atributos
Comentários
Se a chave especificada ainda não estiver associada a um valor (ou for mapeada para nulo), tentará calcular seu valor usando a função de mapeamento fornecida e a inserirá neste mapa, a menos que seja nulo. Se a função de mapeamento retornar nulo, nenhum mapeamento será registrado. Se a função de mapeamento em si gerar uma exceção (desmarcada), a exceção será relançada e nenhum mapeamento será registrado.
Adicionado em 1.8.
O uso mais comum é construir um novo objeto servindo como um valor mapeado inicial ou resultado memorando, como em:
map.computeIfAbsent(key, k -> new Value(f(k)));
Ou para implementar um mapa de vários valores, Map<K, Collection<V>>, com suporte a vários valores por chave:
map.computeIfAbsent(key, k -> new HashSet<V>()).add(v);
A função de mapeamento não deve modificar esse mapa durante a computação.
Java referência para java.util.concurrent.ConcurrentMap.computeIfAbsent.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.