Метод computeIfPresent() класса HashMap в Java
Метод computeIfPresent() пересчитывает значение указанного ключа в hashMap при условии, что ключ существует в hashMap.
Синтаксис метода computeIfPresent():
hashmap.computeIfPresent(K key, BiFunction remappingFunction)
Примечание:hashmap — это объект класса HashMap.
Описание параметра:
- key - ключ
- remappingFunction — функция пересопоставления, используемая для пересчёта значения
Возвращаемое значение
Если значение, соответствующее ключу, не существует, возвращается null; если существует, возвращается значение, пересчитанное функцией remappingFunction.
Пример
В следующем примере демонстрируется использование метода computeIfPresent():
Пример
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