English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico de Java

Controle de fluxo do Java

Array do Java

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Tratamento de Exceções Java

Lista List do Java

Fila Queue do Java

Conjunto Map do Java

Conjunto Set do Java

E/S do Java (I/O)

Reader do Java/Writer

Outros tópicos do Java

Uso e exemplo do método computeIfPresent() do Java HashMap

Métodos HashMap Java

Se a chave hash já existir, o método computeIfPresent() do Java HashMap calculará um novo valor e o associará à chave especificada.

A sintaxe do método computeIfPresent() é: }}

hashmap.computeIfPresent(K key, BiFunction remappingFunction)

Parâmetros do computeIfPresent()

O método computeIfPresent() tem dois parâmetros:

  • key - chave associada ao valor calculado

  • remappingFunction - Para oChaveFunção de cálculo do novo valor

Nota:A função remappingFunction pode aceitar dois parâmetros.

Retorno do computeIfPresent()

  • Retorna o novo valor associado à chave especificada

  • Se não houver valor associado a uma chave, retorna null

Nota:Se o resultado da função remappingFunction for null, o valor especificadoChavemapeamento.

Exemplo1:Java HashMap computeIfPresent()

import java.util.HashMap;
class Main {
  public static void main(String[] args) {
    // Criando HashMap
    HashMap<String, Integer> prices = new HashMap<>();
    // Inserindo itens no HashMap
    prices.put("Shoes", 200);
    prices.put("Bag", 300);
    prices.put("Pant", 150);
    System.out.println("HashMap: ") + prices);
    //usando10recalculando o valor do sapato com o imposto adicional
    int shoesPrice = prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100);
    System.out.println("Preço do sapato com imposto adicional: ") + shoesPrice);
    // Imprimir HashMap atualizado
    System.out.println("HashMap atualizado: ") + prices);
  }
}

Resultados de saída

HashMap: {Pant=150, Bag=300, Shoes=200}
Preço do sapato com imposto adicional: 220
HashMap atualizado: {Pant=150, Bag=300, Shoes=220}}

No exemplo acima, criamos um mapeamento hash chamado prices. Observe a expressão

prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100)

Aqui,

  • (key, value) -> value + value*10/100  - É uma expressão lambda. Ela calcula o novo valor do Shoes e retorna. Para obter mais informações sobre expressões lambda, acesseExpressões Lambda Java.

  • prices.computeIfPresent()  - Atribua o novo valor retornado pela expressão lambda ao mapeamento do Shoes. Isso é possível apenas porque Shoes já está mapeado ao valor na hash table.

Se a chave não existir no hash table, não é possível usar o método computeIfPresent().

Leia mais

Métodos HashMap Java