Методът Java HashMap compute () изчислява нова стойност и я асоциира с посочения ключ в hashmap.
Синтаксисът на compute()
метода е:
hashmap.compute(K key, BiFunction remappingFunction)
Тук hashmap е обект на HashMap
класа.
изчисли () параметри
В compute()
метода отнема 2 параметри:
- ключ - ключ, с който трябва да се свърже изчислената стойност
- remappingFunction - функция, която изчислява новата стойност за посочения ключ
Забележка : Функцията remappingFunction може да отнеме два аргумента. Следователно, считано за BiFunction
.
compute () Върната стойност
- връща новата стойност, свързана с ключа
- връща,
null
ако няма стойност, свързана с ключ
Забележка : Ако резултатите от remappingFunction са резултат null
, тогава преобразуването за посочения ключ се премахва.
Пример: HashMap изчислява (), за да вмъкне нова стойност
import java.util.HashMap; class Main ( public static void main(String() args) ( // create an HashMap HashMap prices = new HashMap(); // insert entries to the HashMap prices.put("Shoes", 200); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("HashMap: " + prices); // recompute the value of Shoes with 10% discount int newPrice = prices.compute("Shoes", (key, value) -> value - value * 10/100); System.out.println("Discounted Price of Shoes: " + newPrice); // print updated HashMap System.out.println("Updated HashMap: " + prices); ) )
Изход
HashMap: (Pant = 150, чанта = 300, обувки = 200) Цена с отстъпка на обувките: 180 Обновена HashMap: (Pant = 150, чанта = 300, обувки = 180
В горния пример създадохме хеш-карта с имена цени. Забележете израза,
prices.compute("Shoes", (key, value) -> value - value * 10/100)
Тук,
- (ключ, стойност) -> стойност - стойност * 10/100 - Това е ламбда израз. Намалява старата стойност на Обувки с 10% и я връща. За да научите повече за ламбда израза, посетете Java Lambda Expressions.
- prices.compute () - асоциира новата стойност, върната от ламбда израза, към картографирането за обувки.
Използвахме ламбда израз като функция за пренасочване, която събира два параметъра.
Забележка : Според официалната документация на Java методът HashMap merge () е по-прост от compute()
метода.
Препоръчително четене
- HashMap computeIfAbsent () - изчислява стойността, ако посоченият ключ не е съотнесен към никоя стойност
- HashMap computeIfPresent () - изчислява стойността, ако посоченият ключ вече е съотнесен към стойност