Java HashMap изчисляване ()

Методът 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 () - изчислява стойността, ако посоченият ключ вече е съотнесен към стойност

Интересни статии...