Метод computeIfPresent() класса HashMap в Java

Java HashMap Java HashMap

Метод computeIfPresent() пересчитывает значение указанного ключа в hashMap при условии, что ключ существует в hashMap.

Синтаксис метода computeIfPresent():

hashmap.computeIfPresent(K key, BiFunction remappingFunction)

Примечание:hashmap — это объект класса HashMap.

Описание параметра:

  • key - ключ
  • remappingFunction — функция пересопоставления, используемая для пересчёта значения

Возвращаемое значение

Если значение, соответствующее ключу, не существует, возвращается null; если существует, возвращается значение, пересчитанное функцией remappingFunction.

Пример

В следующем примере демонстрируется использование метода computeIfPresent():

Пример

import java.util.HashMap;

class Main {
    public static void main(String[] args) {
        // Создать HashMap
        HashMap<String, Integer> prices = new HashMap<>();

        // Добавить сопоставления в HashMap
        prices.put("Shoes", 200);
        prices.put("Bag", 300);
        prices.put("Pant", 150);
        System.out.println("HashMap: " + prices);

        // Пересчитать значение для Shoes после добавления 10% НДС
        int shoesPrice = prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100);
        System.out.println("Price of Shoes after VAT: " + shoesPrice);

        // Вывести обновлённый HashMap
        System.out.println("Обновлённый HashMap: " + prices);
    }
}

При выполнении вышеуказанной программы выводится:

HashMap: {Pant=150, Bag=300, Shoes=200}
Price of Shoes after VAT: 220
Updated HashMap: {Pant=150, Bag=300, Shoes=220}}

В приведённом выше примере мы создали HashMap с именем prices.

Обратите внимание на выражение:

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

В коде мы использовали анонимную функцию — лямбда-выражение(key, value) -> value + value * 10/100в качестве функции переназначения.

Чтобы узнать больше о лямбда-выражениях, посетитеЛямбда-выражения Java。

Java HashMap Java HashMap

Другие расширения