English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O método compute() do Java HashMap calcula um novo valor e o asocia com a chave especificada no mapeamento.
A sintaxe do método compute() é:
hashmap.compute(K key, BiFunction remappingFunction)
O método compute() da compute() tem dois parâmetros:
key - chave associada ao valor calculado
função de remapeamento - paraChaveFunção de cálculo de novo valor
Atenção:A função de cálculo de novo valor pode aceitar dois parâmetros.
Retorna o novo valor associado à chave
Se não houver valor associado à chave, retorna null
Atenção:Se o resultado da função de remapeamento for null, a chave especificada será removidaChavedo mapeamento.
import java.util.HashMap; class Main { public static void main(String[] args) { //Criar HashMap HashMap<String, Integer> prices = new HashMap<>(); //Inserir itens no HashMap prices.put("Shoes", 200); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("HashMap: " + prices); //com10recalcula o preço do sapato com um desconto de % int newPrice = prices.compute("Shoes", (key, value) -> value - value * 10/100); System.out.println("desconto do preço do sapato: " + newPrice); //Imprimir o HashMap atualizado System.out.println("HashMap atualizado: " + prices); } }
Resultados de saída
HashMap: {Pant=150, Bag=300, Shoes=200} desconto do preço do sapato: 180 HashMap atualizado: {Pant=150, Bag=300, Shoes=180
No exemplo acima, criamos um mapeamento chamado prices. Observe a expressão
prices.compute("Shoes", (key, value) -> value - value * 10/100)
Aqui,
(key, value) -> value - value * 10/100 - Esta é uma expressão lambda. Ela reduz o preço original do sapato10% e retorne. Para mais informações sobre expressões lambda, visiteExpressões Lambda Java.
prices.compute() - Associar o novo valor retornado pela expressão lambda ao mapeamento de Shoes
AtençãoSegundo a documentação oficial do Java,HashMap merge()O método é mais simples do que o método compute()
Leia Mais Recomendado
HashMap computeIfAbsent() - Se a chave não estiver mapeada para nenhum valor, calcule o valor
HashMap computeIfPresent() - Se a chave já estiver mapeada para um valor, calcule o valor