Java HashMap: метод compute()
Метод compute() пересчитывает значение для указанного ключа в hashMap.
Синтаксис метода compute():
hashmap.compute(K key, BiFunction remappingFunction)
Примечание:hashmap — это объект класса HashMap.
Детали параметров:
- key - ключ
- remappingFunction - функция ремаппинга, используемая для пересчёта значения
Возвращаемое значение
Если значение, соответствующее ключу, не существует, возвращается null; если существует, возвращается значение, пересчитанное с использованием remappingFunction.
Пример
Следующий пример демонстрирует использование метода compute():
Пример
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);
// Пересчитать стоимость обуви после скидки 10%
int newPrice = prices.compute("Shoes", (key, value) -> value - value * 10/100);
System.out.println("Цена обуви со скидкой: " + newPrice);
// Вывести обновлённый HashMap
System.out.println("Обновлённый HashMap: " + prices);
}
}
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);
// Пересчитать стоимость обуви после скидки 10%
int newPrice = prices.compute("Shoes", (key, value) -> value - value * 10/100);
System.out.println("Цена обуви со скидкой: " + newPrice);
// Вывести обновлённый HashMap
System.out.println("Обновлённый HashMap: " + prices);
}
}
Запуск приведённой выше программы даёт следующий вывод:
HashMap: {Pant=150, Bag=300, Shoes=200}
Discounted Price of Shoes: 180
Updated HashMap: {Pant=150, Bag=300, Shoes=180
В приведённом выше примере мы создали HashMap с именем prices.
Обратите внимание на выражение:
prices.compute("Shoes", (key, value) -> value - value * 10/100)
В коде мы использовали анонимную функцию — лямбда-выражение(key, value) -> value - value * 10/100в качестве функции переназначения.
Чтобы узнать больше о лямбда-выражениях, посетитеЛямбда-выражения Java。
Другие расширения
Java HashMap