Método HashMap computeIfPresent (key, BiFunction) em Java com exemplos
O método computeIfPresent (Key, BiFunction) da classe HashMap que permite calcular o valor de um mapeamento para a chave especificada se a chave já estiver associada a um valor (ou for mapeada para nulo).
- Se a função de mapeamento deste método retornar nulo, o mapeamento será removido.
- Se a função de remapeamento lançar uma exceção, a exceção é relançada e o mapeamento permanece inalterado.
- Durante o cálculo, a modificação deste mapa usando este método não é permitida.
Sintaxe:
public Object computeIfPresent(Object key, BiFunction remappingFunction)
Parâmetros: este método aceita dois parâmetros:
- chave : chave com a qual o valor deve ser associado.
- remappingFunction : função para fazer a operação em valor.
Retorna: Este método retorna um novo valor remapeado associado à chave especificada ou nulo se o mapeamento retornar nulo .
Os programas abaixo ilustram o método computeIfPresent (Key, BiFunction):
Exemplo 1: Este exemplo demonstra o caso em que a chave não está no hashmap.
// Java program to demonstrate
// computeIfPresent(Key, BiFunction) method.
import java.util.concurrent.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// Create a HashMap and add some values
HashMap<String, Integer> wordCount = new HashMap<>();
wordCount.put("Geeks", 1);
wordCount.put("for", 2);
wordCount.put("geeks", 3);
// print HashMap details
System.out.println("Hashmap before operation :\n "
+ wordCount);
// provide new value for keys which is present
// using computeIfPresent method
wordCount.computeIfPresent("Geek",
(key, val) -> val + 100);
// print new mapping
System.out.println("HashMap after operation :\n "
+ wordCount);
}
}
Hashmap antes da operação: {geeks = 3, Geeks = 1, para = 2} HashMap após a operação: {geeks = 3, Geeks = 1, para = 2}
Exemplo 2: Este exemplo demonstra o caso em que a chave está presente no hashmap.
// Java program to demonstrate
// computeIfPresent(Key, BiFunction) method.
import java.util.concurrent.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// Create a HashMap and add some values
HashMap<String, Integer> wordCount = new HashMap<>();
wordCount.put("Geeks", 1);
wordCount.put("for", 2);
wordCount.put("geeks", 3);
// print HashMap details
System.out.println("Hashmap before operation :\n "
+ wordCount);
// provide new value for keys which is present
// using computeIfPresent method
wordCount.computeIfPresent("for",
(key, val) -> val + 1);
// print new mapping
System.out.println("HashMap after operation :\n "
+ wordCount);
}
}
Hashmap antes da operação: {geeks = 3, Geeks = 1, para = 2} HashMap após a operação: {geeks = 3, Geeks = 1, para = 3}
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva